Nice programing

AppCompat 21에서 Light.DarkActionBar 테마를 사용하여 ActionBar 제목 텍스트 색상 변경

nicepro 2020. 12. 27. 20:47
반응형

AppCompat 21에서 Light.DarkActionBar 테마를 사용하여 ActionBar 제목 텍스트 색상 변경


저는 v7 appcompat 21 라이브러리를 사용하여 롤리팝 이전 장치에서 새로운 머티리얼 스타일을 사용하고 있습니다. 내 styles.xml은 다음과 같습니다.

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:textColorPrimary">#ff0000</item>
    <item name="android:textColorPrimaryInverse">#ff0000</item>
</style>

작업 표시 줄의 텍스트 색상을 변경하려고합니다. 그러나 textColorPrimary 또는 textColorPrimaryInverse에 무엇을 입력하든 색상은 항상 흰색입니다. Theme.AppCompat에서 상속하면 "textColorPrimary"를 재정의 할 수 있고 Theme.AppCompat.Light에서 상속하면 "textColorPrimaryInverse"를 재정의 할 수 있습니다. 그러나 Light.DarkActionBar 테마를 사용할 때는 둘 다 작동하지 않습니다.

colorPrimary와 같은 속성을 설정하여 액션 바 배경색을 변경하기 때문에 AppTheme을 확실히 사용하고 있습니다. 다른 리소스 한정자 스타일 파일을 사용하지 않습니다.

나는 안드로이드 스타일 파일을 파고 들었고 어떤 속성을 재정의 해야하는지 알아낼 수없는 것 같습니다. 어떤 아이디어? 이것은 appcompat 버그입니까?


actionBarStyle테마의 속성으로 변경할 수 있습니다 .

<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@style/Widget.AppCompat.ActionBar.Solid">
    <item name="titleTextStyle">@style/MyTitleTextStyle</item>
</style>

<style name="MyTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
    <item name="android:textColor">CHANGE_COLOR_HERE</item>
</style>

이렇게하면 툴바 제목에 흰색이 사용됩니다.

<android.support.v7.widget.Toolbar
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary" />

이 답변 의 차이점을 이해 ThemeOverlay.AppCompat.Dark.ActionBar하고 Theme.AppCompat.Light.DarkActionBar확인하려면

그건 app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"이 테마에 사용 된 제목 색상이 흰색이기 때문에 밝은 색상을 적용.


'values-v11', 'values-v14'등과 같은 모든 값 폴더를 변경했는지 확인하십시오.

그렇지 않으면 위에 표시된 것과 동일한 'AppTheme'가 앱에서 사용되고 있는지 확인하십시오.

문제에 대한 더 많은 통찰력을 제공 할 스타일을 참조하는 전체 style.xml 및 매니페스트 코드를 게시하십시오.

또한 ToolBar에서 app : themeapp : popupTheme 속성을 설정할 수 있습니다 .


onCreate of your Activity에 이것을 추가해보십시오. 거의 모든 Android 버전에서 작동합니다.

자바 활동의 경우 :

 actionBar.setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));  

조각의 경우 :

getSupportActionBar().setTitle(Html.fromHtml("<font color='#ffff00'>Your Title</font>"));

생성 된 레이아웃 xml 파일을 사용했지만 android:theme속성이 재정의 되었음을 알지 못했습니다 .

당신은 당신을 확인 했습니까? :)


이 시도:

<item name="actionMenuTextColor">@color/red</item>

ReferenceURL : https://stackoverflow.com/questions/26870698/change-actionbar-title-text-color-using-light-darkactionbar-theme-in-appcompat-2

반응형