我正在尝试使用两个组的导航视图,其中第一个组textColor是黑色的,第二个组是一个lightGrey。
我似乎只能在NavigationView配置中指定一种颜色。
有什么办法可以推翻这种行为吗?
我的导航视图菜单:
<group
android:id="@+id/navGroupMain"
android:checkableBehavior="single">
<item
android:id="@+id/nav_dashboard"
android:icon="@drawable/ic_dashboard"
android:title="@string/navigation_drawer_item_dashboard" />
</group>
<group
android:id="@+id/navGroupFooter"
android:checkableBehavior="single">
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_settings"
android:title="@string/navigation_drawer_item_settings" />
</group>这就是插入到NavigationView中的主题
<style name="AppTheme.ThemeOverlay.NavigationView" parent="ThemeOverlay.AppCompat.Light">
<!-- This is the menu item text color. -->
<item name="android:textColorPrimary">@color/black</item>
<!-- This is the menu header text color and icon color. -->
<item name="android:textColorSecondary">@color/grey_500</item>
<!-- This is the selected color. -->
<item name="colorPrimary">@color/colorPrimary</item>
</style>发布于 2016-04-29 14:54:36
好的,这个很管用,但它真的很脏。I< 16表示它只应更改前4项的背景。
将其添加到onCreate方法的末尾
LayoutInflater layoutInflater = getLayoutInflater();
try {
Field field = LayoutInflater.class.getDeclaredField("mFactorySet");
field.setAccessible(true);
field.setBoolean(layoutInflater, false);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
final int[] i = {0};
LayoutInflaterCompat.setFactory(getLayoutInflater(), new LayoutInflaterFactory() {
@Override
public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
i[0]++;
if (i[0] < 16 && name .equalsIgnoreCase("android.support.design.internal.NavigationMenuItemView")) {
try{
LayoutInflater f = getLayoutInflater();
final View view = f.createView(name, null, attrs);
new Handler().post(new Runnable() {
public void run() {
// set the background drawable
view .setBackgroundColor(Color.CYAN);
}
});
return view;
} catch (InflateException e) {
} catch (ClassNotFoundException e) {}
}
return null;
}
});https://stackoverflow.com/questions/36920272
复制相似问题