tablayout較全的用法(會(huì)陸續(xù)補(bǔ)充)
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
//背景顏色
android:background="@color/gray_new"
app:tabGravity="fill"
//下劃線顏色
app:tabIndicatorColor="@color/blue"
//下劃線高度
app:tabIndicatorHeight="@dimen/pad_3"
app:tabMode="fixed"
//字體樣式(下邊會(huì)補(bǔ)充)
app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
//選中時(shí)的字體顏色
app:abTextColor="#000000" />
tablayout 標(biāo)題文字樣式
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textSize">20sp</item>
<item name="android:textColor">@android:color/black</item>
<item name="android:textStyle">bold</item>
</style>
改變下劃線長度(通過反射的方法)
public void setIndicator(TabLayout tabs, int leftDip, int rightDip) {
Class<?> tabLayout = tabs.getClass();
Field tabStrip = null;
try {
tabStrip = tabLayout.getDeclaredField("mTabStrip");
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
tabStrip.setAccessible(true);
LinearLayout llTab = null;
try {
llTab = (LinearLayout) tabStrip.get(tabs);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
int left = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, leftDip, Resources.getSystem().getDisplayMetrics());
int right = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, rightDip, Resources.getSystem().getDisplayMetrics());
for (int i = 0; i < llTab.getChildCount(); i++) {
View child = llTab.getChildAt(i);
child.setPadding(0, 0, 0, 0);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1);
params.leftMargin = left;
params.rightMargin = right;
child.setLayoutParams(params);
child.invalidate();
}
}
在oncreate中調(diào)用修改長度
tabLayout.post(new Runnable() {
@Override
public void run() {
setIndicator(tabLayout, 10, 10);
}
});
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者