Android:CollapsingToolbarLayout中心扩展文本,但不是折叠文本

我有一个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> 

我为工具栏定义了一个标题,但是当我折叠它时,我可以看到标题在对angular线方向上移动,而不是直线向上,它自身略微alignment到工具栏行中心的右侧。 请注意,宽度是match_parent,折叠的重心是中心,为什么会发生这种情况,我该如何解决?

第一个屏幕截图:如果使用折叠 – >居中和展开 – >中心重力,然后折叠布局,看起来像什么。 请注意,它位于屏幕中央的右侧。

with_collapsed_center

第二个截图:如果我摆脱了崩溃 – >中心重力,但保留扩展 – >中心重力,然后折叠布局。 注意它默认是左alignment的。

without_collapsed_center

第三个屏幕截图 :展开后的效果

扩大

事情,我已经尝试到目前为止解决这个(没有成功):

•摆脱collapsedGravity,只留下expandedGravity

•标题使用默认的roboto字体

•为工具栏和折叠布局设置填充和边距为0

•设置重心center_horizo​​ntal而不是中心

编辑:

唯一的解决方法,我发现,使这个工作正常的是使用一个单独的文本视图来保存标题,而不是设置collapsingtoolbarlayout的标题(这使标题正确折叠到中心)。 这不是最佳的,所以我很高兴知道CPL是否有错误,或者是否有一种方法可以使用默认的标题来做同样的事情。

Solutions Collecting From Web of "Android:CollapsingToolbarLayout中心扩展文本,但不是折叠文本"

您需要将app:contentInsetStartapp:contentInsetLeft属性设置为0dp

  <android.support.v7.widget.Toolbar .. app:contentInsetLeft="0dp" app:contentInsetStart="0dp"/> 

它可能会迟到,但我发现,您的标题是在标题的视图的中心,而不是整个工具栏。 它发生在我身上,当时我没有左边的上/下button,右边有一个图标。

所以如果你有上/下button,它应该正好在中间,因为在左边和右边你有1个图标。 但是,这并没有发生,因为当你设置向上/向后的button时,它会添加一些右边距(你可以在普通的工具栏上看到这种行为,左标题引力)。

在这里输入图像说明

所以考虑到,在其余的地区,你的头衔是在中心。 但是,考虑到工具栏的宽度,不是中心,在标题视图的可用宽度的中心。

实验:您可以尝试在右侧添加第二个图标,它将位于中心。 只是一个黑客。 丑陋的黑客。

你需要设置app:expandedTitleGravity="center"并从您的代码中删除app:collapsedTitleGravity="center"

  <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsingToolbar" android:layout_width="match_parent" android:layout_height="match_parent" app:expandedTitleGravity="center" app:layout_scrollFlags="scroll|exitUntilCollapsed" > 

希望这可以帮助你