"app:tabBackground="@drawable/tab_color_selector"", :
( tab_color_selector second_tab_color_selector ( )
XML TabLayout:
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabDots"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:tabBackground="@drawable/tab_color_selector"
app:tabGravity="center"
app:tabIndicatorHeight="0dp" />
onCreate:
tabLayout.setupWithViewPager(viewPagerFragments, true);
setupViewPager(viewPagerFragments);
TabLayoutOnPageChangeListener:
viewPagerFragments.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout) {
@Override
public void onPageSelected(int position) {
switch (position) {
case 0:
tabLayout.getTabAt(position).setIcon(getResources().getDrawable(R.drawable.tab_color_selector));
tabLayout.getTabAt(1).setIcon(getResources().getDrawable(R.drawable.tab_color_selector));
tabLayout.getTabAt(2).setIcon(getResources().getDrawable(R.drawable.tab_color_selector));
break;
case 1:
tabLayout.getTabAt(0).setIcon(getResources().getDrawable(R.drawable.tab_color_selector));
tabLayout.getTabAt(position).setIcon(getResources().getDrawable(R.drawable.tab_color_selector));
tabLayout.getTabAt(2).setIcon(getResources().getDrawable(R.drawable.tab_color_selector));
break;
case 2:
tabLayout.getTabAt(0).setIcon(getResources().getDrawable(R.drawable.second_tab_color_selector));
tabLayout.getTabAt(1).setIcon(getResources().getDrawable(R.drawable.second_tab_color_selector));
tabLayout.getTabAt(position).setIcon(getResources().getDrawable(R.drawable.second_tab_color_selector));
break;
}
}
});
"", , width (android:layout_width="50dp" TabLayout XML).
NPE tabLayout.getTabAt(X).setIcon(....), , , 3 , ... ( , for?)
, -
---EDIT 1---
API 28, 27 19, , API 27... - .
---EDIT 2---
... .