来自setTitle()
的{{1}}方法已经存在一些错误(例如仅在滚动后显示,在CollapsingToolbarLayout
中修复)。
今天我更新到v22.2.1
,它根本不起作用,就像没有显示标题一样。通过延迟多次调用它,我可以看到有时标题就在那里,但它确实不可靠(比如,你切换到另一个片段,然后回到第一个,并且不再有标题)。
我发现有一个新属性,v23.0.0
或app:titleEnabled
。我已将两者都设置为true,但实际上并没有改变任何内容。
你们中是否有人遇到过同样的行为?
我想知道市场上有多少应用程序正在使用这个设计库,它从第一个版本开始就已经充满了错误并且没有变得更好。
通过进一步测试,似乎(我不是100%肯定)它已连接到新的CollapsingToolbarLayout.setTitleEnabled(boolean)
api。
如果我打电话:
AppBarLayout.setExpanded()
它有效,但如果我打电话
collapsingToolbar.setTitle("title");
它没有 - 没有显示标题。与collapsingToolbar.setTitle("title");
appbarLayout.setExpanded(true, true);
//OR
appbarLayout.setExpanded(true, true);
collapsingToolbar.setTitle("title");
相同,i。即试图折叠工具栏。
嗯,不。即使我从未致电setExpanded(false, true)
或abl.setExpanded()
,也会出现此问题。另外,我们现在正在使用v23.0.1,但仍未修复。看起来我们中只有少数人正在体验它,因为我在这里找不到任何东西,也没有在官方的bug列表中找到。我提交了一个错误here。
答案 0 :(得分:5)
标题未显示,因为AppBarLayout的布局高度太小。我的高度为110dp,这在v22.2.1中有效。升级到v23.0.0后,我必须将高度更改为 125dp 才能显示标题。无需使用新属性或方法调用。这是我的布局:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_height="125dp"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbarLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:expandedTitleTextAppearance="@style/ExpandedAppBarTitle"
app:expandedTitleMarginStart="14dp"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v7.widget.RecyclerView android:id="@android:id/list"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/addbtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
app:borderWidth="0dp"
android:layout_margin="@dimen/fab_margin"
android:src="@drawable/ic_add" />
答案 1 :(得分:3)
我在我的应用中试过了一些组合:
collapsingToolbar.setTitle("title");
appbarLayout.setExpanded(true, true); // works
collapsingToolbar.setTitle("title");
appbarLayout.setExpanded(true, false); // works
collapsingToolbar.setTitle("title");
appbarLayout.setExpanded(false, true); // works
collapsingToolbar.setTitle("title");
appbarLayout.setExpanded(false, false); // doesn't show title
我在片段中的onCreateView()中调用了这些方法。 AppBarLayout默认是扩展的,可以通过布局中的XML进行更改,但是当我将其定义为不在XML中展开时,它也不会显示标题。奇怪的东西......无论如何,如果你有一些想法我怎么能进一步帮助,请告诉我。