, więc mam aplikację, która jest Holo Light z Dark Actionbar i kiedy idę skopiować i wkleić coś w EditText, ikony są białe, więc nie widzisz im. Zrzut ekranu znajduje się poniżej. Czy istnieje sposób na rozwiązanie tego problemu? Dzięki! Holo Light z Dark Actionbar pokazującym Holo Dark kopiować i wklejać ikony
Odpowiedz
Musisz ręcznie ustawić motyw ponownie w metodzie onCreateDialog. Jest to błąd w ramach ale to rozwiązanie działa na razie:
Mam problem z motywem Theme.AppCompat.Light.DarkActionBar i myślę, że to błąd. Próbowałem zmienić tło w moim stylu z następujących (można uzyskać kanału alfa z http://jgilfelt.github.io/android-actionbarstylegenerator/):
<!-- styles.xml -->
<style name="Theme.MyThemeLightBase" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionModeBackground">@drawable/cab_background_top</item>
<item name="android:actionModeBackground">@drawable/cab_background_top</item>
</style>
iz tym:
<!-- styles.xml -->
<style name="Theme.MyThemeLightBase" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="actionModeStyle">@style/my_action_mode_style</item>
<item name="android:actionModeStyle">@style/my_action_mode_style</item>
</style>
<style name="my_action_mode_style" parent="@style/Widget.AppCompat.Light.ActionMode.Inverse">
<item name="android:background">@drawable/cab_background_top</item>
</style>
Ale żaden z tych rozwiązań wydaje się działać (proszę daj mi znać, jeśli w końcu dostać się do zmiany tła), więc postanowiłem niech białe tło i po prostu zmienić ikony:
<!-- styles.xml -->
<style name="Theme.MyThemeLight" parent="Theme.MyThemeLightBase">
<item name="actionModeSelectAllDrawable">@drawable/ic_menu_selectall_holo_light</item>
<item name="android:actionModeSelectAllDrawable">@drawable/ic_menu_selectall_holo_light</item>
<item name="actionModeCutDrawable">@drawable/ic_menu_cut_holo_light</item>
<item name="android:actionModeCutDrawable">@drawable/ic_menu_cut_holo_light</item>
<item name="actionModeCopyDrawable">@drawable/ic_menu_copy_holo_light</item>
<item name="android:actionModeCopyDrawable">@drawable/ic_menu_copy_holo_light</item>
<item name="android:actionModePasteDrawable">@drawable/ic_menu_paste_holo_light</item>
<item name="actionModePasteDrawable">@drawable/ic_menu_paste_holo_light</item>
</style>
Uwaga: Musisz określić plik styles.xml w wartości, wartości-v11 i wartości-v14, ponieważ niektóre atrybuty nie są wymagane z lub bez przedrostka "android". Sprawdź dokumentację poziomu interfejsu API: http://developer.android.com/reference/android/R.attr.html#actionModeCopyDrawable
Czy jesteś pewien, że używasz kontekstu aktywności? Przypadkowe użycie kontekstu aplikacji może mieć takie efekty, ponieważ kontekst aplikacji nie używa/nie zna motywu. – zapl
Gdzie powinienem używać kontekstu działania w przeciwieństwie do kontekstu aplikacji? Przepraszam, jestem nieco zdezorientowany. – ollien
Jeśli używasz kontekstu aplikacji podczas konstruowania interfejsu użytkownika (niejawnie lub jawnie za pomocą 'LayoutInflater',' Resources', ...) otrzymasz uszkodzony motyw. Jeśli użyjesz kontekstu działania ('this' wewnątrz' Activity'/'.getActivity()' wewnątrz 'Fragment') wszystko powinno być w porządku. To tylko przypuszczenie, że możesz używać niewłaściwego kontekstu. – zapl