2016-07-28 74 views
4

我已經通過這些走了,但似乎並不工作充氣選項卡項目不會在android系統

android.support.design.widget.TabLayout 
工作

需要設置自定義視圖每個孩子標籤的匹配父匹配父到子大小

  • 務實地給大小

    View v = LayoutInflater.from(this).inflate(R.layout.layout_two, null); 
        v.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 
        tabLayout.getTabAt(0).setCustomView(v); 
    

這可以作爲一個匹配父母因爲沒有背景,但一旦加充氣視圖問題涉及

tabLayout.getTabAt(1).setText("About").setIcon(R.drawable.drop_complete); 
  • 雖然有關tabIndicator以及 其高度設置爲app:tabIndicatorHeight="0dp"或添加android:tabStripEnabled="false"做沒有幫助。

這裏是邊界的圖片清楚地顯示了小的差距就像padding(藍條是我TabLayout兩個選項卡)

留下一個充氣 右邊爲正常.setIcon

任何幫助使沒有差距的充氣的一個配對家長?

這裏是我的代碼

XML

<android.support.design.widget.CoordinatorLayout 
    android:id="@+id/main_layout" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBarLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:elevation="30dp"> 


     //------- INSIDE THIS I HAVE A TAB 
     <android.support.v7.widget.Toolbar 
      android:background="@drawable/capture" 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:minHeight="?attr/actionBarSize" 
      android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
      app:elevation="0dp" 
      app:layout_scrollFlags="scroll|enterAlways" 
      /> 


     //------ HERE comes THE TAB That I DEAL 
     <android.support.design.widget.TabLayout 
      android:tabStripEnabled="false" 
      app:tabIndicatorHeight="0dp" 
      android:id="@+id/tab_layout" 
      android:scrollbars="none" 
      android:layout_below="@+id/toolbar" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      app:tabTextColor="#d3d3d3" 
      android:minHeight="?attr/actionBarSize" 
      android:orientation="vertical" > 

     </android.support.design.widget.TabLayout> 


    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:background="#467" 
     android:id="@+id/viewpager" 
     android:layout_below="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     /> 

</android.support.design.widget.CoordinatorLayout> 

myClass的

public class LayoutExampleActivity extends AppCompatActivity { 
    private TabLayout tabLayout; 


    private ViewPager viewPager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_layout_example); 

     tabLayout = (TabLayout) findViewById(R.id.tab_layout); 


     viewPager = (ViewPager) findViewById(R.id.viewpager); 
     setupViewPagerAdaptor(viewPager); 

     tabLayout.setupWithViewPager(viewPager); 
     setTabs(); 


    } 

    private void setupViewPagerAdaptor(ViewPager viewPager) { 
     ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); 
     adapter.addFragment(new FragmentOne(), "First"); 
     adapter.addFragment(new GalleryFragment(), "Second"); 
//  adapter.addFragment(new FragmentOne(), "Third"); 
     viewPager.setAdapter(adapter); 
    } 

    class ViewPagerAdapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragmentList = new ArrayList<>(); 
     private final List<String> mFragmentTitleList = new ArrayList<>(); 

     public ViewPagerAdapter(FragmentManager manager) { 
      super(manager); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragmentList.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragmentList.size(); 
     } 

     public void addFragment(Fragment fragment, String title) { 
      mFragmentList.add(fragment); 
      mFragmentTitleList.add(title); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitleList.get(position); 
     } 
    } 

    public void setTabs() { 

     tabLayout.getTabAt(0).setCustomView(R.layout.layout_one); 

     tabLayout.getTabAt(1).setText("About").setIcon(R.drawable.drop_complete); 

    } 

} 

enter image description here

回答

2

設置tabPaddingStarttabPaddingEnd屬性。 是這樣的:

<android.support.design.widget.TabLayout 
      ... 
      app:tabPaddingStart="0dp" 
      app:tabPaddingEnd="0dp" > 

這個問題可能會被重複。
看到:Cannot remove Padding from Tabs when using Custom views with Tab Layout

+0

我在疑問,0 DP不起作用 –

+0

'應用程序明確提到:tabIndicatorHeight =「0dp」'你的問題中提到。我建議你嘗試'tabPaddingStart'和'tabPaddingEnd'。它在我的環境中用你的XML工作。 – nshmura

+0

讓我再試一次 –