我正在使用TabLayout
和ViewPager
来显示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
。
你可以参考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这样的代码可以不用设置tabGravity
和tabMode
。
<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"/>