【发布时间】:2016-02-25 13:34:58
【问题描述】:
我有一个CollapsingToolbarLayout,它被定义为在折叠和展开模式下都居中:
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/rootLayout"
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="286dp">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsingToolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:collapsedTitleGravity="center"
app:expandedTitleGravity="center"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/backgroundImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@null"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
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:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_collapseMode="pin"
app:layout_scrollFlags="scroll|exitUntilCollapsed"/>
<ImageView
android:id="@+id/someIcon"
android:layout_width="56dp"
android:layout_height="wrap_content"
android:src="@drawable/some_icon"
android:padding="16dp"
android:layout_gravity="top|end"
app:layout_collapseMode="pin"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
</android.support.design.widget.CoordinatorLayout>
我为工具栏定义了一个标题,但是当我折叠它时,我可以看到标题沿对角线方向移动,而不是笔直向上移动,并且它稍微对齐工具栏线中心的右侧。请注意,宽度是 match_parent 并且折叠的重力是中心,那么为什么会发生这种情况以及我应该如何解决它?
• 第一个屏幕截图:如果我使用折叠 -> 中心和展开 -> 中心重力然后折叠布局会是什么样子。请注意,它位于屏幕中心的右侧。
• 第二个屏幕截图:如果我摆脱折叠 -> 重心但保持展开 -> 重心然后折叠布局,会是什么样子。请注意,默认情况下它是左对齐的。
• 第三张截图:展开后的样子
到目前为止我尝试过的事情来解决这个问题(没有成功):
• 去掉collapsedGravity,只留下expandGravity
• 为标题使用默认的roboto 字体
• 将工具栏和折叠布局的内边距和边距设置为 0
• 设置重心 center_horizontal 而不是 center
编辑:
我发现使这项工作正常工作的唯一解决方法是使用单独的文本视图来保存标题,而不是为 collapsingtoolbarlayout 设置标题(这会使标题正确折叠到中心)。这不是最佳的,所以我很高兴知道 CPL 中是否有错误,或者是否有办法使用默认标题来做同样的事情。
【问题讨论】:
-
只需要设置 app:expandedTitleGravity="center" 并移除 app:collapsedTitleGravity="center"
-
您希望标题在工具栏折叠时位于正确的中心?在里面吗?
-
是的 - 我希望它在折叠时正好位于中心。当我开始折叠它时,我可以看到它沿对角线移动,并在中心右侧结束,而不是直线向上移动
-
嗨,乔恩,您的扩展标题是在 center_vertical 吗?您能分享一下您所做的解决方法吗?
标签: android android-layout android-collapsingtoolbarlayout