TabLayout 重心不起作用

TabLayout gravity center is not working

我有一个 TabLayout,我希望选项卡显示在屏幕中央。 下面是我的 TabLayout 的 XML。

<android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="@color/white"
            app:tabGravity="center"
            app:tabIndicatorColor="@color/about_tab_selected"
            app:tabIndicatorHeight="4dp"
            app:tabMode="scrollable"
            app:tabPaddingEnd="20dp"
            app:tabPaddingStart="20dp"
            app:tabSelectedTextColor="@color/about_tab_selected"
            app:tabTextAppearance="@style/UGTabTextAppearance"
            app:tabTextColor="@color/about_tab_unselected" />

但是,我的选项卡仍然显示在左侧,我无法将它们居中 Activity。

我得到的是:

我真正想要的是:

有人可以告诉我我做错了什么吗?如果您需要有关 XML 其余部分的更多信息,请告诉我。

Tab 重力仅影响 MODE_FIXED。

一个可能的解决方案是将 layout_width 设置为 wrap_content 并将 layout_gravity 设置为 center_horizontal

好的,所以问题出在 layout_width="match_parent"

当我将其更改为 layout_width="wrap_content" 时,它解决了我的问题。

最后的XML是:

<android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@color/white"
        app:tabGravity="center"
        app:tabIndicatorColor="@color/about_tab_selected"
        app:tabIndicatorHeight="4dp"
        app:tabMode="scrollable"
        app:tabPaddingEnd="20dp"
        app:tabPaddingStart="20dp"
        app:tabSelectedTextColor="@color/about_tab_selected"
        app:tabTextAppearance="@style/UGTabTextAppearance"
        app:tabTextColor="@color/about_tab_unselected" />

如果您设置任何字体,只需删除 运行 代码并检查。

请注意 TabGravity 仅影响 MODE_FIXED

您可以通过将 layout_width 设置为 wrap_content 并将 layout_gravity 设置为 center_horizontal

来解决对齐问题
<android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        app:tabGravity="center"
        ...
 />