Java TabLayout中的选项卡未填充整个操作栏
我正在使用Java TabLayout中的选项卡未填充整个操作栏,java,android,tabs,Java,Android,Tabs,我正在使用表格布局和查看页面按照指南显示操作栏选项卡,但是我的选项卡被挤压到操作栏的左侧,如下所示: 我想让他们以同样的宽度占据整个酒吧。我只对指南做了一些小改动: 在activity_main.xml中,创建了一个样式来显示ActionBar: <android.support.design.widget.TabLayout android:id="@+id/sliding_tabs" android:layout_width="match_parent" android:
表格布局
和查看页面
按照指南显示操作栏选项卡
,但是我的选项卡被挤压到操作栏的左侧,如下所示:
我想让他们以同样的宽度占据整个酒吧。我只对指南做了一些小改动: 在activity_main.xml中,创建了一个样式来显示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>
真的
#FF0030
另外,my
MainActivity
现在扩展了AppCompatActivity
,而不是FragmentActivity
尝试将此添加到MainActivity:
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
你可以参考
GRAVITY\u CENTER
GRAVITY用于在表格布局的中心布置选项卡
GRAVITY\u FILL
GRAVITY用于尽可能多地填充表格布局
MODE\u FIXED
FIXED选项卡同时显示所有选项卡,最好与从选项卡之间的快速旋转中获益的内容一起使用
MODE\u可滚动
可滚动选项卡在任何给定时刻显示选项卡的子集,可以包含更长的选项卡标签和更多的选项卡
在代码或布局xml中设置此选项
app:tabGravity="center"
app:tabMode="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中添加-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"
我从中得到了一个简单的答案 您只需将其放入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" />
设置表格布局宽度以匹配父级 像这样
<TabLayout
android:layout_width="match_parent"
android:layout_height="60dp"/>
如指南所示,您的表格布局嵌入到线性布局中?是的,它与线性布局一起添加。这将起作用:app:tabGravity=“fill”
app:tabGravity:“fill”和app:tabMaxWidth=“0dp”为我做的!我取出了行app:tabMode=“scrollable”
,它解决了这个问题。我也可以确认,从XML文件中删除app:tabMode=“”解决了所有问题。更改tabMode值仍会使选项卡显示为压扁。只有完全不包含此属性才能解决此问题。我有一个动态选项卡内容,当我有多个选项卡时,它才起作用,但当只有一个选项卡时,文本不会显示得最完整(选项卡仅延伸到图标宽度),有没有办法解决此问题您正在扼杀它!tabMaxWidth参数帮助我修复了一个不工作的设备。app:tabGravity=“fill”&app:tabMode=“fixed”对于我的一台设备来说是不够的。这解决了我在横向模式下的一个问题(即使在纵向模式下工作正常)。app:tabMaxWidth=“0dp”是我需要的解决方案。谢谢app:tabMaxWidth=“0dp”保存了我。感谢您提及应用程序:tabMaxWidth=“0dp”+1!!
<TabLayout
android:layout_width="match_parent"
android:layout_height="60dp"/>