2017-02-22 10 views
0

I Tab Layout verwenden und hier ist mein Codeentfernen TabLayout links und rechts padding

<android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabGravity="center" 
     app:tabMode="fixed" 

     android:minHeight="?attr/actionBarSize" 
     app:tabTextColor="#000" 
     app:tabSelectedTextColor="#fff" 
     app:tabIndicatorColor="@android:color/white" 

     android:clipToPadding="false" 
     /> 

Registerkarte wie dieser Registerkarte

Hinzufügen // Erstellen

Textview-tab = (Textview) LayoutInflater. von (diesem) .inflat (R.layout.custom_tab, null); tab.setText ("Home"); tab.setCompoundDrawablesWithIntrinsicBounds (0, R.mipmap.ic_home_black_24dp, 0, 0); tabLayout.addTab (tabLayout.newTab(). SetCustomView (tab));

TextView tab2 = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null); 
tab2.setText("Report"); 
tab2.setCompoundDrawablesWithIntrinsicBounds(0, R.mipmap.ic_trending_up_black_24dp, 0, 0); 
tabLayout.addTab(tabLayout.newTab().setCustomView(tab2)); 

TextView tab3 = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null); 
tab3.setText("Medicine"); 
tab3.setCompoundDrawablesWithIntrinsicBounds(0, R.mipmap.ic_home_black_24dp, 0, 0); 
tabLayout.addTab(tabLayout.newTab().setCustomView(tab3)); 

TextView tab4 = (TextView) LayoutInflater.from(this).inflate(R.layout.custom_tab, null); 
tab4.setText("More"); 
tab4.setCompoundDrawablesWithIntrinsicBounds(0, R.mipmap.ic_trending_up_black_24dp, 0, 0); 
tabLayout.addTab(tabLayout.newTab().setCustomView(tab4)); 

und hier ist mein Handy Screenshot

https://i.stack.imgur.com/kYNs1.png 

Zwei Dinge 1.How kann ich Raum zu entfernen, die von links und rechts der Registerkarte Layout nimmt?

2.How kann ich die Farbe von Text und das Symbol der aktiven und inaktiven Tab

+0

verwenden app: tabPadding eigenschaft –

Antwort

5
  1. Padding von Tabs in Tab Layout-

    In Ihrem TabLayout entfernen Sie eingestellt haben, dass tabPaddingEnd und tabPaddingStart zu 0dp.

    <android.support.design.widget.TabLayout 
    app:tabPaddingStart="0dp" 
    app:tabPaddingEnd="0dp"/> 
    
  2. verfärben von Symbol des ausgewählten Registerkarte TabLayout von

    viewPager = (ViewPager) findViewById(R.id.viewpager); 
    setupViewPager(viewPager); 
    
    tabLayout = (TabLayout) findViewById(R.id.tabs); 
    tabLayout.setupWithViewPager(viewPager); 
    tabLayout.setOnTabSelectedListener(
         new TabLayout.ViewPagerOnTabSelectedListener(viewPager) { 
    
          @Override 
          public void onTabSelected(TabLayout.Tab tab) { 
           super.onTabSelected(tab); 
           int tabIconColor = ContextCompat.getColor(context, R.color.tabSelectedIconColor); 
           tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); 
          } 
    
          @Override 
          public void onTabUnselected(TabLayout.Tab tab) { 
           super.onTabUnselected(tab); 
           int tabIconColor = ContextCompat.getColor(context, R.color.tabUnselectedIconColor); 
           tab.getIcon().setColorFilter(tabIconColor, PorterDuff.Mode.SRC_IN); 
          } 
    
          @Override 
          public void onTabReselected(TabLayout.Tab tab) { 
           super.onTabReselected(tab); 
          } 
         } 
    ); 
    
0

Für einstellen Pading Sie app:tabMinWidth wie oder tabPaddingStart/tabPaddingEnd/tabPaddingTop/tabPaddingBottom

<android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabGravity="center" 
     app:tabMode="fixed" 
     app:tabMinWidth="50dp" 
     app:tabPaddingBottom="1dp" 
     app:tabPaddingEnd="1dp" 
     app:tabPaddingStart="1dp" 
     app:tabPaddingTop="1dp" 
     android:minHeight="?attr/actionBarSize" 
     app:tabTextColor="#000" 
     app:tabSelectedTextColor="#fff" 
     app:tabIndicatorColor="@android:color/white" 

     android:clipToPadding="false" 
     /> 

Für einfach verwenden können, können Sie Verwenden Sie den folgenden Code für die Farbe

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@color/tab_background_selected" android:state_selected="true"/> 
    <item android:drawable="@color/tab_background_unselected"/> 
</selector> 

und speichern Sie es in ziehbar als tab_color_selector.xml

und verwenden

app:tabBackground="@drawable/tab_color_selector" 

so insgesamt Code wird

<android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:tabGravity="center" 
     app:tabMode="fixed" 
     app:tabMinWidth="50dp" 
     android:minHeight="?attr/actionBarSize" 
     app:tabTextColor="#000" 
     app:tabSelectedTextColor="#fff" 
     app:tabIndicatorColor="@android:color/white" 
     app:tabBackground="@drawable/tab_color_selector" 
     android:clipToPadding="false" 
     /> 

Farben Geben Sie in tab_background_selected und tab_background_unselected wie #000000. oder verwenden Sie #000000 direkt statt @color/tab_background_unselected

+0

seine nehmen platz von links und rechts –

0

die Sie interessieren,

<android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:background="@drawable/bg_forum_tab" 
     app:tabIndicatorColor="@color/colorBtnBg" 
     app:tabIndicatorHeight="0dp" 
     app:tabPaddingBottom="-1dp" 
     app:tabPaddingEnd="-1dp" 
     app:tabPaddingStart="-1dp" 
     app:tabPaddingTop="-1dp" 
     style="@style/CustomTabLayoutStyle" 
     app:tabTextColor="@color/colorWhite" /> 

Set tabPaddingStart/tabPaddingEnd/tabPaddingTop/tabPaddingBottom wie diese.

Styles: 

    <style name="CustomTabLayoutStyle" parent="Base.Widget.Design.TabLayout"> 
     <item name="tabSelectedTextColor">@color/tab_text_selected</item> 
     <item name="tabIndicatorColor">@color/tab_indicator</item> 
     <item name="tabTextAppearance">@style/CustomTabTexStyle</item> 
    </style> 

    <style name="CustomTabTexStyle" parent="TextAppearance.Design.Tab"> 
     <item name="android:textSize">14sp</item> 
     <item name="android:textColor">@color/tab_text</item> 

     ... 
    </style>