NavigationView.setItemTextAppearance() не работает
Я построил NavigationView
используя код Java, а затем я устанавливаю стиль текста, чтобы текст моих пунктов меню содержал определенный цвет и шрифт, используя метод 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>
1 ответ
Решение
Я полагаю 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);
Результат