我使用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成为应用于style项的默认NavigationView的后代会解决:

<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);
结果
android - NavigationView.setItemTextAppearance()无法正常工作-LMLPHP

关于android - NavigationView.setItemTextAppearance()无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43916231/

10-12 00:31