【发布时间】:2016-02-06 13:40:48
【问题描述】:
我有 AppBarLayout 、CollapsingToolbarLayout 和工具栏的活动。 从代码中设置标题和副标题。最初我希望隐藏工具栏并在 Appbar 布局折叠时显示, 使用我的代码它的工作(工具栏最初隐藏)但它总是显示工具栏标题和副标题。仅当 appbar 布局完全折叠时如何显示标题
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="@dimen/app_bar_height"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:titleEnabled="false"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
设置标题和副标题
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setTitle("Title");
getSupportActionBar().setSubtitle("sutitle");
【问题讨论】:
-
你必须在
CollapsingToolbarLayout上setTitle。不要直接访问Toolbar或ActionBar。注意CollapsingToolbarLayout不支持字幕。 -
我怎样才能实现这个功能
-
选项 a) 在此处提交问题code.google.com/p/android/issues/list,选项 b) 开源 CollapsingToolbarLayout 的源代码,了解它的工作原理并添加您需要的功能。如果您选择这种方式,请考虑将您的解决方案开源,因为其他人可能有类似的需求。谢谢!
-
选项 c) 不要使用字幕。使用两行标题,第二行用AbsoluteSizeSpan 或RelativeSizeSpan 包裹。
-
感谢 Eugen 的指导
标签: android android-toolbar android-collapsingtoolbarlayout android-appbarlayout