如何使CollapsingToolbarLayout的标题居中?

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

  • CollapsingToolbarLayout中的工具栏,工具栏标题未显示
  • 使用CollapsingToolbarLayout类时出错
  • NestedScroll中的可点击CardView不会触发滚动
  • 具有自定义视图的Android CollapsingToolbarLayout
  • CollapsingToolbarLayout | 滚动和布局问题2
  • 除非折叠,否则CollapsingToolbarLayout setTitle()不会更新
  • 使用viewpager折叠ToolBar布局
  • 使用GridView / listView设计lib - CoordinatorLayout / CollapsingToolbarLayout
  • 您可以使用属性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所有额外空间。