在Android中,如果NestedScrollView内容不足以滚动,如何让CollapsingToolbar停止折叠?此功能目前存在于Android 5.1.1上的"联系人"应用中.但是,在我的代码中,当NestedScrollView停止滚动时,工具栏继续折叠,两者之间留下间隙.
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="256dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleMarginStart="@dimen/content_padding_normal"
app:expandedTitleMarginEnd="64dp">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:titleTextAppearance="@style/ActionBar.TitleText"
app:layout_collapseMode="pin" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/keyline_2">
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/element_spacing_normal">
<include
layout="@layout/ViewLoadingIndeterminate" />
<LinearLayout
android:id="@+id/progress_status_container"
style="@style/ConnectionFieldContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical"
android:visibility="visible">
<Spinner
android:id="@+id/progress_status"
android:layout_width="match_parent"
style="@style/Text.ConnectionField" />
<TextView
style="@style/Text.ConnectionLabel"
android:text="@string/mobile.customer.connect.progress.status" />
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/element_spacing_normal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/email1_container" …Run Code Online (Sandbox Code Playgroud) android android-coordinatorlayout android-collapsingtoolbarlayout
我一直在寻找一种向社交网络分享信息的方法.我找到了两种可能的解决方案:
当寻找快速实现方法时,我说使用已安装的应用程序,但如果它进行自定义和泛化,我认为第二个选项是最好的.
我很难决定一个人是否胜过另一个人.
所以我的问题是:最好的方法是什么?我建议的其中一个或完全不同的方式?
好的,这是交易.我想在扩展库类中移动项目以更改图像的顺序.我现在这样做的方式:
onDraw()绘制相同的图像,以便我可以使用它移动它onTouchEvent()这工作正常,但问题是,当使用该onDraw()方法时,它将绘制图库项目后面的图像.有没有办法改变绘制的优先级?
所以这是我的问题:我创建了一个扩展的自定义组件.Button这个按钮有一个名为的属性testAttr.
<declare-styleable name="TestButton" parent="@android:style/Widget.Button">
<attr name="testAttr" format="reference|color"/>
</declare-styleable>
Run Code Online (Sandbox Code Playgroud)
我想为这个组件创建一个默认样式,所以我添加了这个:
<declare-styleable name="TestTheme">
<attr name="testStyle" format="reference"/>
</declare-styleable>
<style name="Theme.AppTheme" parent="@android:style/Theme" >
<item name="testStyle">@style/test</item>
</style>
Run Code Online (Sandbox Code Playgroud)
问题是我想要同时使用android属性和我自己的属性,这是行不通的:
<style name="test" parent="@android:style/Widget.Button">
<item name="android:background">#FF0000</item>
<item name="testAttr">testText</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我在自定义组件中设置默认样式,如下所示:
public myButton(final Context context) {
this(context, null);
}
public myButton(final Context context, final AttributeSet attrs) {
this(context, attrs, R.styleable.TestTheme_testStyle);
}
public myButton(final Context context, final AttributeSet attrs, final int defStyle) {
super(context, attrs, defStyle);
final TypedArray array = context.obtainStyledAttributes(
attrs,
R.styleable.TestButton,
defStyle,
R.style.testDefault);
final …Run Code Online (Sandbox Code Playgroud) 我正在开发一个自定义视图来调整textview中的文本大小,以便它适合(我不想椭圆化).
我遇到的麻烦是,在更改文本大小时,textview本身不会重新测量.我一直在查看源代码,发现setTextSize()正在调用以下内容:
nullLayouts();
requestLayout();
invalidate();
Run Code Online (Sandbox Code Playgroud)
所以它应该重新测量.这可能是一个错误,因为它在2.3上工作正常,而不是1.6,1.5和2.1仿真器.
这是代码片段,注意textview是扩展的:
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
if(w == 0 && h == 0) {
setTextSize(TypedValue.COMPLEX_UNIT_PX, defaultSize);
}
updateView();
}
private void updateView() {
int viewWidth = getViewWidth();
float textWidth = getTextWidth();
float textSize = textSize();
while(textWidth > viewWidth && textSize >= MIN_TEXT_SIZE) {
setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize-1);
textSize = getTextSize();
textWidth = getTextWidth();
}
}
Run Code Online (Sandbox Code Playgroud)
谁能给我提示正确的方向来解决这个问题?
我打造了相当多的障碍ActionBar.
我现在遇到的问题ActionView是扩展时的徽标/图标.由于某种原因,它不使用此处可绘制的徽标,但应用程序图标可绘制.我希望这个消失或者设置为我自己的drawable.我尝试onMenuItemActionCollapse()使用setIcon()功能直接设置图标ActionBar,没有运气.还尝试在那里设置家庭和徽标的东西.
任何想法如何解决这个问题?
我正在扩展PreferenceActivity我的设置屏幕。在这个偏好活动中,我有几个偏好,其中一个是定制的。问题如下:
在此自定义首选项(从 扩展ListPreference)中,我希望能够设置默认值,因此我覆盖了该setDefaultValue()方法。在这种方法中,我进行了一些解析,因此它将采用正确的值。当我试图用getValue()函数读取这个值时,它只返回null.
所以我想,当我把一些硬编码的值放在那里时会发生什么(你知道,也许我做错了什么,这不是第一次)。嗯,我还是null回来了。
任何想法我做错了什么?
编辑:
在 xml 文件中设置 defaultValue 并不是一个真正的选项,因为在我检索它们之前这些值是未知的。
我做了一个解决方法:
这样我在收集数据时设置了默认首选项
android preference preferenceactivity android-preferences listpreference