【问题标题】:How to center title in default toolbar without custom layout?如何在没有自定义布局的情况下在默认工具栏中居中标题?
【发布时间】:2021-08-02 12:46:47
【问题描述】:

我有这个主题,并希望在默认工具栏中将标题居中。这意味着我的 XML 文件中没有工具栏。这是我尝试过的:

<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="android:textColor">@color/colorWhite</item>
    <item name="actionBarTheme">@style/AppBaseTheme.Toolbar</item>
</style>

<style name="AppBaseTheme.Toolbar" parent="Widget.AppCompat.ActionBar.Solid">
    <item name="android:textColorPrimary">@color/colorPrimary</item>
    <item name="titleCentered">true</item>
</style>

&lt;item name="titleCentered"&gt;true&lt;/item&gt; 没有将标题居中。如何解决?

【问题讨论】:

  • 我认为这是不可能的,即使是这样,至少在不修改其他地方的情况下是不可能的。 titleCentered 属性来自 MaterialToolbar(最近才添加它本身),但您的 ComponentActivityAppCompatActivity 中的默认装饰将使用 androidx Toolbar
  • @MikeM。感谢您对我的问题发表评论。那么如何在不创建自定义布局的情况下将标题居中?
  • 我不确定主要目标是什么。您是否试图避免布局?或者您是否试图避免更改默认的ActionBar?如果是前者,您可以简单地使用NoActionBar 主题,并在代码中创建自己的MaterialToolbar。如果是后者,那么下面的答案中显示的内容可能是首选解决方案。如果两者兼而有之,那么您可以将它们结合起来,并将setCustomView() 方法与您在代码中自己创建的Views 结合使用。
  • 是的,你是对的。我会尝试找到另一个 hacky :) 再次感谢你!'
  • 没问题。你在美好的一天抓住了我。 ;-) 干杯!

标签: android android-toolbar android-theme android-styles


【解决方案1】:

在您的 Activity 中,在您的 onCreate() 中

methodgetSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM;
getSupportActionBar().setCustomView(R.layout.main_layout);

ma​​in_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
    android:layout_gravity="center"
android:orientation="vertical">

<android.support.v7.widget.AppCompatTextView
    android:id="@+id/tvTitle"
    style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:textColor="#FFFFFF" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    相关资源
    最近更新 更多