textColorPrimaryテーマ属性を使用して、テーマ(明るいまたは暗い)と一致するように色付けされたアイコン付きのTabLayoutがあります。しかし、私のMainActivityのTabLayoutアイコンにこの色合いを適用すると、異なるアクティビティのツールバーアイコンも変わります。TabLayout Icon Tintその他のアクティビティを変更するActionbar Icon Tint
スクリーンショットは、TabLayoutのアイコンがアクティビティ内のアイコンの色と一致することを示しています。しかし、活動アイコンは白であることを意味する。
TabLayoutアイコンとテキストの色を設定するための洗面所独立活動ツールバーアイコン
コード:
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>
私はメニューを膨らませるために別々の活動を持っているすべてはこれです:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.preview, menu);
return true;
}
このリンクを試すhttps://stackoverflow.com/questions/26788464/how-to-change-color-of-the-back-arrow-in-the-new-material-theme –