1新建各fragement 添加到list
2新建適配器,在適配器的 @Override
public CharSequence getPageTitle(int position) {
return mName[position];
} 方法給每個tab設(shè)置名稱哼审,mName為傳進(jìn)來的tab名稱數(shù)組岂嗓;
3 該適配器繼承FragmentPagerAdapter抚笔;
4? 總有一些時候你會遇到很操蛋的需求崭参,本文主要為記錄該需求 自定義tab 的長度跟文字一樣而不是整個tab一樣
反射:
Class tablayout = mDynamicTabLayout.getClass();
Field tabStrip = null;
try {
tabStrip = tablayout.getDeclaredField("mTabStrip");
tabStrip.setAccessible(true);
LinearLayout ll_tab = (LinearLayout) tabStrip.get(mDynamicTabLayout);
for (int i = 0; i < ll_tab.getChildCount(); i++) {
View child = ll_tab.getChildAt(i);
child.setPadding(0, 0, 0, 0);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1);
// 以下兩行是設(shè)置tab下滑條的寬度 起始位置和結(jié)束位置
params.setMarginStart(DensityUtils.dip2px(getApplicationContext(), 60));
params.setMarginEnd(DensityUtils.dip2px(getApplicationContext(), 45));
child.setLayoutParams(params);
child.invalidate(); // 這個方法是重畫
}
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}