ответ

20

борется с этой проблемой на некоторое время тоже нашел решение по этой теме: Android Design Support Library TabLayout using custom tabs layout but layout wrapping the tabs

<!-- Add the padding to tabPaddingStart and/or tabPaddingEnd --> 
<android.support.design.widget.TabLayout 
     android:id="@+id/tabLayout" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/tab_layout_height" 
     app:tabPaddingStart="10dp" 
     app:tabPaddingEnd="10dp"> 
2

Вы можете использовать атрибут tabMinWidth. вот так.

<android.support.design.widget.TabLayout 
    android:id="@+id/tabs" 
    android:layout_width="match_parent" 
    android:layout_height="44dp" 
    app:tabIndicatorColor="@color/default_enable" 
    app:tabTextColor="@color/font_default_03" 
    app:tabSelectedTextColor="@color/default_enable" 
    app:tabMinWidth="50dp" 
    android:clipToPadding="false" 
    android:paddingLeft="4dp" 
    android:paddingRight="4dp" /> 
+0

спасибо своей работы. –

0

раскладка

<android.support.design.widget.TabLayout 
     android:id="@+id/tabLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"/> 

ява

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabLayout); 
int betweenSpace = 100; 

ViewGroup slidingTabStrip = (ViewGroup) tabLayout.getChildAt(0); 

for (int i=0; i<slidingTabStrip.getChildCount()-1; i++) { 
    View v = slidingTabStrip.getChildAt(i); 
    ViewGroup.MarginLayoutParams params = (ViewGroup.MarginLayoutParams) v.getLayoutParams(); 
    params.rightMargin = betweenSpace; 
} 
-1

Это как заданный запас для четырех арендовать вкладки. Вы можете изменить значения функций setMargins (v1, v2, v3, v4), чтобы получить подходящую установку для количества вкладок, с которыми вы работаете. Надеюсь, это поможет. Обратите внимание: tabHost является объектом TabHost, на котором размещаются разные вкладки, с которыми вы работаете.

Display display = getWindowManager().getDefaultDisplay(); 
      int width = display.getWidth(); 
      View currentView; 
      for(int i=0;i<tabHost.getTabWidget().getChildCount();i++) 
      { 
       //This code removes divider between tabs 
       tabHost.getTabWidget().setDividerDrawable(null); 
       tabHost.getTabWidget().getChildAt(i).setLayoutParams(new 
         LinearLayout.LayoutParams((width/8)-2,50)); 
       currentView = tabHost.getTabWidget().getChildAt(i); 
        LinearLayout.LayoutParams currentLayout = 
         (LinearLayout.LayoutParams) currentView.getLayoutParams(); 
        currentLayout.setMargins(30, 5, 80, 0); 

      } 
-1
<android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabMinWidth="0dp" 
     app:tabMode="scrollable" 
     /> 
+1

По умолчанию андроид дает некоторую minWidth, из-за этого будет минимальная ширина для каждой вкладки. Если вы хотите указать width как wrap_content, тогда дайте minWidth = "0dp", и если вам нужно место между вкладками, то дайте tabPaddingStart = "10dp" и tabPaddingEnd = "10dp" в соответствии с вашим требованием –