如何使CollapsingToolbarLayout的标题居中?

我尝试了setExpandTitleTextAppearance ,但它没有用。 我想将扩展的标题文本居中。

您可以使用属性expandedTitleGravity与CollapsingToolbarLayout对扩展的标题文本进行居中。 将其添加到您的CollapsingToolbarLayout:

 app:expandedTitleGravity="bottom|center_horizontal" 

在我的用例中,我将app:titleEnabled设置为false,无论如何我都不需要它。 之后,我的引力在工具栏布局中得到了正确的尊重。

@Javed,纠正我,如果我错了,你想让标题集中在工具栏中,然后CollapsingToolbarLayout折叠,你的布局是这样的,对吧?

      

然后你可以做这个技巧(我在活动的onCreate中做):

  try { Field declaredField = toolbar.getClass().getDeclaredField("mTitleTextView"); declaredField.setAccessible(true); TextView titleTextView = (TextView) declaredField.get(toolbar); ViewGroup.LayoutParams layoutParams = titleTextView.getLayoutParams(); layoutParams.width = ViewGroup.LayoutParams.MATCH_PARENT; titleTextView.setLayoutParams(layoutParams); titleTextView.setGravity(Gravity.CENTER_HORIZONTAL); } catch (Exception e) { //"Error!" } 

关键是工具栏中的TextView具有宽度属性“Wrap Content”,因此我们需要将其更改为“Match Parent”。 ( 在这里查看更多有关此反映)

在Android 5.1.1和Android 4.3上测试过(应该在各处都可以使用)

如果您尝试将标题置于折叠状态,您可以使用

 android:paddingEnd="70dp" android:paddingRight="70dp" 

喜欢这个:

     

正如app:titleEnabled所说,将app:titleEnabled设置为false就像魅力一样。

启用该选项后,在使用布局检查器进行一些挖掘之后,在“向上”按钮(如果已启用)之后,始终在Toolbar TextView前添加可疑的未命名视图。

因此,即使布局重力正常工作,一些可疑视图也会占用Toolbar所有额外空间。