0

지난 밤부터 내 응용 프로그램 테마의 이상한 동작이 예상됩니다 : 팝업 메뉴는 검은 색 배경과 AlertDialogs가 흰색 텍스트 색상으로 나타납니다. 그런데안드로이드 지원 라이브러리 이상한 테마 동작

Black popup menu backgroundWhite text color on alert dialog

, 내 styles.xml을 heres :

<resources xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android"> 
    <style name="CustomActionBarTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="android:actionBarStyle" tools:ignore="NewApi">@style/MyActionBar</item> 

     <item name="actionBarStyle">@style/MyActionBar</item> 
    </style> 

    <style name="MyActionBar" 
     parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse"> 
     <item name="android:background">@drawable/action_bar_background</item> 

     <!-- Support library compatibility --> 
     <item name="background">@drawable/action_bar_background</item> 
    </style> 

</resources> 

어떤 무슨 생각이 잘못? 팝업 메뉴에서 기본 라이트 테마를 다시 사용하고 경고 대화 상자에서 검은 색 전경색을 사용하기 만하면됩니다.

답변

0

나는 문제를 해결했다. 팝업 메뉴와 alertdialog 빌더의 생성자 모두에 애플리케이션 컨텍스트를 전달했습니다. 이것은 응용 프로그램 테마에 문제를 일으키는 것으로 보입니다. 나는 getApplicationContext()getActivity()으로 간단히 변경했으며 효과가있었습니다.

1

왜 잘못 생각합니까?

PopupWindow 배경 Theme.Light에 어두운 :

<style name="Widget.PopupWindow"> 
    <item name="android:popupBackground">@android:drawable/editbox_dropdown_background_dark</item> 
    <item name="android:popupAnimationStyle">@android:style/Animation.PopupWindow</item> 
</style> 

당신이 그것을 변경하고자하는 경우 - 당신은 당신의 테마 팝업 창 스타일을 재정의해야 :

<style name="CustomActionBarTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionBarStyle" tools:ignore="NewApi">@style/MyActionBar</item> 
    <item name="android:popupWindowStyle">@style/YourCustomStyle</item> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
</style> 

<style name="YourCustomStyle" parent="@android:style/Widget.PopupWindow"> 
    <item name="android:popupBackground">@drawable/your_background</item> 
</style> 

경고 대화는 동일한에 정의됩니다 방법

+0

헤이 파벨, 답장을 보내 주셔서 감사합니다. 뭔가를 테스트 할 새 프로젝트를 만들었습니다. 내 팝업 메뉴 배경이 밝은 회색이므로 프로젝트에서도이 템플릿을 사용하고 싶습니다. 또한 스타일은 Theme.AppCompat.Light.DarkActionBar에서 상속되므로 기본적으로 검정색이 아닙니다. – tobs