TabLayout中的Tabs不会填满整个ActionBar

我正在使用TabLayoutViewPager来显示ActionBar tabs遵循使用TabLayout的Google Play样式选项卡 ,但是我的选项卡被挤压到ActionBar的左侧,如下所示:


我希望他们能够以相同的宽度占据整个酒吧。 我只对指南做了一些小的修改:

在activity_main.xml中创build了一个样式来显示ActionBar:

 <android.support.design.widget.TabLayout android:id="@+id/sliding_tabs" android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/AppTheme" app:tabMode="scrollable" /> 

这是styles.xml代码:

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="windowActionBar">true</item> <item name="tabIndicatorColor">#ffff0030</item> </style> 

另外,我的MainActivity现在扩展AppCompatActivity而不是FragmentActivity

Related of "TabLayout中的Tabs不会填满整个ActionBar"

你可以参考TabLayout 。

GRAVITY_CENTER重力用于布局GRAVITY_CENTER的选项卡。

GRAVITY_FILL重力用于尽可能多地填充TabLayout。

MODE_FIXED固定的选项卡可同时显示所有选项卡,最适用于可在选项卡之间快速旋转的内容。

MODE_SCROLLABLE滚动的选项卡在任何给定时刻显示选项卡的子集,并且可以包含更长的选项卡标签和更多数量的选项卡。

在代码或布局xml中设置。

 app:tabGravity="center" app:tabMode="fixed" 

要么

 tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER); tabLayout.setTabMode(TabLayout.MODE_FIXED); 

通常,使用像blow这样的代码可以不用设置tabGravitytabMode

 <android.support.design.widget.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:layout_scrollFlags="scroll|enterAlways" /> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" /> </android.support.design.widget.AppBarLayout> 

我从这里得到简单的答案是: 这里

你只需把它放在你的xml代码中:

 <android.support.design.widget.TabLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMaxWidth="0dp" app:tabGravity="fill" app:tabMode="fixed" /> 

尝试添加到MainActivity:

 tabLayout.setTabMode(TabLayout.MODE_FIXED); tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 

在xml中添加 – app:tabGravity =“fill”属性。

例如 –

 <android.support.design.widget.TabLayout android:id="@+id/tablayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabGravity="fill" /> 

试试这个工程

  app:tabGravity="fill" app:tabMode="fixed" 

设置TabLayout宽度以匹配父

喜欢这个。

 <TabLayout android:layout_width="match_parent" android:layout_height="60dp"/>