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

  • IllegalStateException:碎片已经添加在tabhost片段中
  • 如何更改Android中的标签样式?
  • 在android中使button看起来像选项卡
  • 更改Android JellyBean上的Actionbar高度
  • Android:GestureDetector不能正常工作(gestureDetector.onTouchEvent(event)always false)Tabs(TabActivity,Tabwidget)
  • Android选项卡上的导航抽屉
  • 如何防止NFC标签克隆?
  • Android:卡模拟 - 使用PN532 nfc模块读取ndef消息
  • 你可以参考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"/>