У меня рисуется tab_color_selector.xml, я использую его в TabLayout.
Я хочу изменить цвет выбранного состояния на onTabSelected.
tab_color_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/medicine_green"
android:state_selected="true" />
<item android:drawable="@color/base_gray" />
</selector>
Tablayout xml:
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/c_white"
app:tabBackground="@drawable/tab_color_selector"
app:tabIndicatorColor="@color/summary_blue"
app:tabIndicatorHeight="5px"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/c_white"
app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
app:tabTextColor="@color/c_white" />
Здесь я хочу изменить ColorDrawable android: state_selected = "true" цвет программно.
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
switch (tab.getPosition()) {
case 0:
((ColorDrawable)tabLayout.getBackground()).setColor(getResources().getColor(R.color.material_yellow400));
tabLayout.setSelectedTabIndicatorColor(getResources().getColor(R.color.color_17));
break;
case 1:
((ColorDrawable)tabLayout.getBackground()).setColor(getResources().getColor(R.color.material_pink400));
tabLayout.setSelectedTabIndicatorColor(getResources().getColor(R.color.out_pat_green));
break;
}
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
Я попробовал оба setColor () и setColorFilter (), а также setBackground ()