2017-05-11 12 views
2

Java 코드를 사용하여 NavigationView을 만든 다음 setItemTextAppearance(int resId) 메서드를 사용하여 특정 색상과 글꼴로 내 메뉴 항목의 텍스트를 유지하도록 텍스트 스타일을 설정했습니다. 그러나이 방법은 효과가 없습니다. 내 텍스트가 바뀌지 않습니다.NavigationView.setItemTextAppearance()가 작동하지 않습니다.

:

<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> 

답변

2
: 여기
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); 

내 스타일 코드 : 다른 모든 방법이 setItemTextColor()처럼 큰 노력하고, setItemBackground() 등이 여기에

내 코드입니다

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> 

을 자바 코드에서 :

 

    navigationView.setItemTextColor(null); 
    navigationView.setItemTextAppearance(R.style.MenuTextStyle); 

 

결과

enter image description here

+0

나뿐만 아니라이 일을하려고합니다. 작동하지 않음 : ( –

+0

@LuizFernandoSalvaterra,이 설정은 내 컴퓨터에서 작동합니다. – azizbekian

+0

스타일 안에 색상을 적용하고 네비게이션을 제거하려고 시도합니다. navigationView.setItemTextColor (ColorStateList.valueOf (ContextCompat.getColor (context, android.R.color.content))));'자바 코드 –