tablayout自定義長度 與上面的文字相同

1新建各fragement 添加到list

2新建適配器,在適配器的 @Override

public CharSequence getPageTitle(int position) {

return mName[position];

} 方法給每個tab設置名稱,mName為傳進來的tab名稱數組;

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);

// 以下兩行是設置tab下滑條的寬度 起始位置和結束位置

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();

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容