还是先上效果图
1. 在Android—Tablayout自定义tab写了自定义tab的实现,但是我发现当我们用自定义tab的时候,发现tablayout下的字体颜色属性不管用了,所以这时我们只能去自己实现自定义布局的背景和textview的字体颜色变化。
<android.support.design.widget.TabLayout
android:id="@+id/comment_tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:padding="-1dp"
app:tabIndicatorColor="@color/blue_title"
app:tabPaddingBottom="-1dp"
app:tabPaddingEnd="0dp"
app:tabPaddingStart="0dp"
app:tabPaddingTop="-1dp"
app:tabSelectedTextColor="@color/blue_title"
app:tabTextColor="@color/blue_title"
app1:tabGravity="fill"
app1:tabIndicatorHeight="0dp"
app1:tabMode="fixed" />
2.自定义tab的布局是这样子的。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/tab_left_selector"
android:orientation="vertical" >
<TextView
android:id="@+id/tab_text_left"
android:layout_width="80dp"
android:layout_height="30dp"
android:enabled="false"
android:gravity="center"
android:textColor="@color/tab_text_color" />
</LinearLayout
3.其中tab_left_selector的代码是这样子的(正常的空间的话只要在background中设置上tab_left_selector之后,那这个控件就可以实现背景变化了,但是在tablayout中你还得需要做一些改变)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/tab_right_unselect" android:state_selected="false"/>
<item android:drawable="@drawable/tab_right_select" android:state_selected="true"/>
</selector>
<3.1>在FragmentPagerAdapter中给他设置初始的状态是select还是unselect(可以在activity中将true或fasle传过来)
public View getTabView1(boolean select) {
mInflater = LayoutInflater.from(VossApplication.getAppContext());
View view = mInflater.inflate(R.layout.item_tab_right, null);
//
view.setSelected(select);
TextView tv = (TextView) view.findViewById(R.id.tab_text_right);
tv.setText(titles.get(1));
return view;
}
4.改变自定义tab布局中textview的颜色
注意一:在res/color/tab_text_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:color="@color/white"/>
<item android:state_enabled="true" android:color="@color/white"/>
<item android:state_selected="true" android:color="@color/white"/>
<item android:color="@color/blue_title"></item>
</selector>
注意二:在自定义布局中需要设置他的ebabled初始值false(上面3.1中有完整代码)
<TextView
android:id="@+id/tab_text_left"
android:layout_width="80dp"
android:layout_height="30dp"
android:enabled="false"
android:gravity="center"
android:textColor="@color/tab_text_color" />
这只是写我在实现效果图中遇到的一些坑,希望帮到大家