アイコンボタン付きのメニューにTabLayoutを使用しています。 アイコンをXMLで描画可能なものに色分けすることはできますか?Androidスタジオ:TabItem内のアイコンに色合いを設定する
android:tintはTabItem要素では機能しません。あなたは一つの方法があるXMLによって色合いを設定したい場合は、一部のコーディングそれを行うことができます
アイコンボタン付きのメニューにTabLayoutを使用しています。 アイコンをXMLで描画可能なものに色分けすることはできますか?Androidスタジオ:TabItem内のアイコンに色合いを設定する
android:tintはTabItem要素では機能しません。あなたは一つの方法があるXMLによって色合いを設定したい場合は、一部のコーディングそれを行うことができます
、この
private void setupTabIcons() {
tabLayout.getTabAt(0).setIcon(tabIcons[0]);
tabLayout.getTabAt(1).setIcon(tabIcons[1]);
tabLayout.getTabAt(2).setIcon(tabIcons[2]);
tabLayout.getTabAt(3).setIcon(tabIcons[3]);
tabLayout.getTabAt(0).getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN);
tabLayout.getTabAt(1).getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN);
tabLayout.getTabAt(2).getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN);
tabLayout.getTabAt(3).getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN);
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
tab.getIcon().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN);
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
tab.getIcon().setColorFilter(Color.parseColor("#a8a8a8"), PorterDuff.Mode.SRC_IN);
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
を試してみてください。
custom_tab
レイアウトがある
<android.support.design.widget.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@drawable/ic_drawable"
android:layout="@layout/custom_tab" />
:あなたはhere見つけることができるTintableImageView
の
<?xml version="1.0" encoding="utf-8"?>
<com.view.TintableImageView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@android:id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
app:tint_color="@color/red" />
ソース属性android:layout
を介して設定されてTabItem
用のカスタムレイアウトがあります。あなたは、別のセレクタ状態に異なるアイコンの色を使用するだけでカラーセレクタファイルを作成し、色合いの色として設定したい場合は
このアプローチは、あなたに柔軟性を与え、それが推奨されていません()
app:tint_color="@color/selector_tab"
setOnTabSelectedListenerに動作します。代わりに "addOnTabSelectedListener"を使用しました。 –
cool。うまくいけば私はそれに気付かなかった。あなたを助けてうれしい –