J'ai un TabLayout avec des icônes qui sont teintées pour correspondre au thème (clair ou foncé) en utilisant l'attribut de thème textColorPrimary. Mais lorsque j'applique cette couleur à mes icônes TabLayout dans MainActivity, les icônes de la barre d'outils d'une autre activité changent également.TabLayout Icône Teinte Changement d'autres activités Barre d'icônes Icône Teinte
Les captures d'écran montrent que les icônes de TabLayout correspondent à celles de l'activité. Mais les icônes d'activité sont censées être blanches.
Seperate Activité Toolbar Icons
Code pour la mise en TabLayout Icônes et texte Couleur:
ColorStateList colors;
if (Build.VERSION.SDK_INT >= 23) {
colors = getResources().getColorStateList(color.tablayout_icon_colors, getTheme());
}
else {
colors = getResources().getColorStateList(color.tablayout_icon_colors);
}
for (int i = 0; i < tabLayout.getTabCount(); i++) {
TabLayout.Tab tab = tabLayout.getTabAt(i);
Drawable tabicon = tab.getIcon();
CharSequence tabtitle = tab.getText();
LinearLayout tabLayout2 = (LinearLayout)((ViewGroup) tabLayout.getChildAt(0)).getChildAt(tab.getPosition());
TextView tabTextView = (TextView) tabLayout2.getChildAt(1);
if (tabicon != null) {
tabicon = DrawableCompat.wrap(tabicon);
DrawableCompat.setTintList(tabicon, colors);
}
if (tabtitle != null) {
tabTextView.setTextColor(colors);
}
}
tablayout_icon_colors.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?attr/colorAccent"
android:state_selected="true" />
<item android:color="?android:attr/textColorPrimary" />
</selector>
Tout ce que j'ai dans l'activité séparée pour gonfler le menu est la suivante:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.preview, menu);
return true;
}
Essayez ce lien https://stackoverflow.com/questions/26788464/how-to-change-color-of-the-back-arrow-in-the-new-material-theme –