为平板电脑设置标签布局选项卡的最佳方法是什么?

Sam*_*mys 8 android android-design-library android-tablayout

我正在使用Android Design支持库中的TabLayout.如何将MODE_SCROLLABLE与GRAVITY_FILL一起使用,以使其在所有设备和方向上看起来相同?

目前,如果我使用MODE_SCROLLABLE,它在7英寸平板电脑上看起来不错,但在10英寸平板电脑上,标签在左侧对齐.我希望能够为所有尺寸使用GRAVITY_FILL.

这是我的tablayout:

<android.support.design.widget.TabLayout
    android:id="@+id/tab_layout"
    android:layout_width="match_parent"
    android:layout_height="72dp"            
/>
Run Code Online (Sandbox Code Playgroud)

我在代码中设置模式

 tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
Run Code Online (Sandbox Code Playgroud)

ian*_*ake 11

根据TabLayout.GRAVITY_FILL文档:

重力用来尽可能地填充TabLayout.此选项仅在与MODE_FIXED一起使用时生效.

因此,通过将模式设置为MODE_SCROLLABLE,选项卡始终与起始边缘对齐 - MODE_SCROLLABLE的平板电脑和手机之间的唯一区别是选项卡的最小宽度,由选项卡材料设计规范设置.

请注意,如果要将视图设置为始终可滚动,则可以通过XML指定重力和选项卡模式:

<android.support.design.widget.TabLayout
  android:id="@+id/tab_layout"
  android:layout_width="match_parent"
  android:layout_height="72dp"
  app:tabMode="scrollable"
/>
Run Code Online (Sandbox Code Playgroud)


小智 5

//to get phones width in dp
int w= (int)((Resources.getSystem().getDisplayMetrics().widthPixels)/Resources.getSystem().getDisplayMetrics().density);
//To check screen width is greater than approx total no of tabswidth 
//I have calculated tabswidth by setting mode scrollable in layout and trying in defferent phones i got space left in 384dp width phone and no space in 360dp width phone so i took 370
        if(w>370){
            tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
            tabLayout.setTabMode(TabLayout.MODE_FIXED);
        }
    else
        tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
Run Code Online (Sandbox Code Playgroud)