我想在我的项目中使用新的Design TabLayout.我希望布局适应每个屏幕尺寸和方向,但可以在一个方向上正确看到.
我正在处理重力和模式设置我的tabLayout为:
tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
Run Code Online (Sandbox Code Playgroud)
所以我希望如果没有空间,tabLayout是可滚动的,但是如果有空间,它就会居中.
从指南:
public static final int GRAVITY_CENTER Gravity用于布置TabLayout中心的选项卡.
public static final int GRAVITY_FILL Gravity用于尽可能多地填充TabLayout.此选项仅在与MODE_FIXED一起使用时生效.
public static final int MODE_FIXED固定选项卡同时显示所有选项卡,最适用于受益于选项卡之间快速枢轴的内容.选项卡的最大数量受视图宽度的限制.固定标签的宽度相等,基于最宽的标签标签.
public static final int MODE_SCROLLABLE可滚动选项卡在任何给定时刻显示选项卡的子集,并且可以包含更长的选项卡标签和更多数量的选项卡.当用户不需要直接比较标签标签时,它们最适合用于浏览触摸界面中的上下文.
所以GRAVITY_FILL只与MODE_FIXED兼容但是,at没有为GRAVITY_CENTER指定任何内容,我希望它与MODE_SCROLLABLE兼容,但这是我使用GRAVITY_CENTER和MODE_SCROLLABLE

因此它在两个方向都使用SCROLLABLE,但它没有使用GRAVITY_CENTER.
这就是我对景观的期望; 但要拥有这个,我需要设置MODE_FIXED,所以我得到的是肖像:

如果tabLayout适合屏幕,为什么GRAVITY_CENTER不能用于SCROLLABLE?有没有办法动态设置重力和模式(并看看我期待什么)?
非常感谢你!
编辑:这是我的TabLayout的布局:
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:background="@color/orange_pager"
android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)