[英]Why does android dropdown menu of action bar look different on Lollipop?
經過幾個月的開發,我現在正在開發一個Android應用程序,現在陷入了一個愚蠢的問題。
我基本上遇到的問題是下拉菜單(來自操作欄),該菜單根據我的styles.xml看起來像白色背景上方的深色文本。 但是在不同的設備上測試我的應用程序時,我注意到在Lollipop上,相同的下拉菜單在深色背景上顯示深色文本,因此這種文本幾乎無法讀取。
我認為“問題”與原始目錄下的文件夾“ values-v11”和“ values-v14”及其各自的styles.xml有關。 嘗試播放此文件,以復制我在styles.xml主要文件中設置的部分或全部設置,但沒有結果。
這是我的styles.xml文件的樣子:
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="android:actionBarTabStyle">@style/MyActionBar.Tab</item>
<item name="android:actionBarTabBarStyle">@style/MyActionBar.TabBar</item>
<item name="android:icon">@android:color/transparent</item>
<item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
<item name="android:popupMenuStyle">@android:style/Widget.Holo.PopupMenu</item>
<item name="android:actionBarWidgetTheme">@style/MyActionBarWidget</item>
<item name="android:dropDownListViewStyle">@android:style/Widget.Holo.Light.ListView.DropDown</item>
</style>
<style name="MyActionBarWidget" parent="android:Theme.Holo.Light">
<item name="android:popupMenuStyle">@android:style/Widget.Holo.Light.PopupMenu</item>
<item name="android:dropDownListViewStyle">@android:style/Widget.Holo.Light.ListView.DropDown</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/actionbar_background</item>
<item name="android:titleTextStyle">@style/Theme.MyAppTheme.ActionBar.TitleTextStyle</item>
<item name="android:subtitleTextStyle">@style/Theme.MyAppTheme.ActionBar.SubTitleTextStyle</item>
</style>
<style name="MyActionBar.Tab">
<item name="android:background">@drawable/tab_bar_background</item>
<item name="android:gravity">center</item>
</style>
<style name="MyActionBar.TabBar">
<item name="android:background">@color/actionbar_background</item>
</style>
<style name="Theme.MyAppTheme.ActionBar.TitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Title">
<item name="android:textColor">@color/white</item>
</style>
<style name="Theme.MyAppTheme.ActionBar.SubTitleTextStyle" parent="android:style/TextAppearance.Holo.Widget.ActionBar.Subtitle">
<item name="android:textColor">@color/white</item>
</style>
在假期“刷新我的頭腦”幾個星期后,一次回來就知道是什么造成了這個問題:
<item name="android:popupMenuStyle">
有兩個沖突的定義<item name="android:popupMenuStyle">
“ AppTheme”內部有一個@android:style/Widget.Holo.PopupMenu
Widget.Holo.PopupMenu“ MyActionBarWidget”內部有一個@android:style/Widget.Holo.Light.PopupMenu
棒棒糖設備正在“ AppTheme”下找到一台設備,問題已經解決了,方法是將其刪除,然后將其留在“ MyActionBarWidget”下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.