NavigationView.setItemTextAppearance() 不工作
NavigationView.setItemTextAppearance() not working
我使用 Java 代码构建了一个 NavigationView
,然后使用方法 setItemTextAppearance(int resId)
设置了文本样式,使菜单项的文本保持特定的颜色和字体。但是这种方法不起作用。我的文字没有改变。
注意 :所有其他方法都很好用,例如 setItemTextColor()
、setItemBackground()
等
这是我的代码:
mNavigationView = new NavigationView(context);
mNavigationView.setId(R.id.nav_view);
mNavigationView.setFitsSystemWindows(true);
// This method works great!
mNavigationView.setBackgroundColor(ContextCompat.getColor(context, R.color.colorPrimary));
// This too.
mNavigationView.setItemTextColor(ColorStateList.valueOf(ContextCompat.getColor(context, android.R.color.white)));
// This method is not working.
mNavigationView.setItemTextAppearance(R.style.MenuTextStyle);
这是我的样式代码:
<style name="MenuTextStyle">
<item name="android:textSize">16sp</item>
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ffffff</item>
<item name="android:lineSpacingExtra">0sp</item>
</style>
我想使您的 style
成为应用于 NavigationView
项目的默认值 style
的后代会成功:
<style name="MenuTextStyle" parent="TextAppearance.AppCompat.Medium">
<item name="android:textSize">22sp</item>
<item name="android:textStyle">italic</item>
<item name="android:textColor">#ff0000</item>
</style>
在Java代码中:
navigationView.setItemTextColor(null);
navigationView.setItemTextAppearance(R.style.MenuTextStyle);
结果
我使用 Java 代码构建了一个 NavigationView
,然后使用方法 setItemTextAppearance(int resId)
设置了文本样式,使菜单项的文本保持特定的颜色和字体。但是这种方法不起作用。我的文字没有改变。
注意 :所有其他方法都很好用,例如 setItemTextColor()
、setItemBackground()
等
这是我的代码:
mNavigationView = new NavigationView(context);
mNavigationView.setId(R.id.nav_view);
mNavigationView.setFitsSystemWindows(true);
// This method works great!
mNavigationView.setBackgroundColor(ContextCompat.getColor(context, R.color.colorPrimary));
// This too.
mNavigationView.setItemTextColor(ColorStateList.valueOf(ContextCompat.getColor(context, android.R.color.white)));
// This method is not working.
mNavigationView.setItemTextAppearance(R.style.MenuTextStyle);
这是我的样式代码:
<style name="MenuTextStyle">
<item name="android:textSize">16sp</item>
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ffffff</item>
<item name="android:lineSpacingExtra">0sp</item>
</style>
我想使您的 style
成为应用于 NavigationView
项目的默认值 style
的后代会成功:
<style name="MenuTextStyle" parent="TextAppearance.AppCompat.Medium">
<item name="android:textSize">22sp</item>
<item name="android:textStyle">italic</item>
<item name="android:textColor">#ff0000</item>
</style>
在Java代码中:
navigationView.setItemTextColor(null);
navigationView.setItemTextAppearance(R.style.MenuTextStyle);
结果