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"/>