簡體   English   中英

Android API 16 MenuItem和導航抽屜圖標BackgroundColor

[英]Android API 16 MenuItem and Navigation Drawer Icon BackgroundColor

我的應用程序使用AppCompat庫,目標是v23,minSDK是v16。 我目前有一個帶有“導航抽屜片段”的活動,並且在“主活動”中的3個不同片段之間切換。

我的AppCompatToolbar顏色為藍色,我的活動背景為灰色。

在API 16上,“我的導航抽屜”圖標(設置為“主頁”按鈕)以及從我的片段中放大的任何MenuItem在我的藍色工具欄頂部均帶有灰色背景。

在API 17+上:一切看起來都不錯。 圖標和MenuItems使用工具欄顏色。

不幸的是,由於我沒有足夠的代表,所以我無法顯示圖片,但您知道了。

我沒有在onPrepareOptionsMenu或onCreateOptionsMenu中做任何時髦的事情。我找不到任何信息,這僅在運行API 16的設備上發生。這里是來自styles.xml的相關主題,我將粘貼任何必要的代碼。

<style name="AppThemeWhite" parent="AppTheme.Base">
    <item name="android:textColor">#ffffff</item>
    <item name="android:textColorSecondary">#FFFFFF</item>
    <item name="android:textColorTertiary">#FFFFFF</item>
    <item name="actionMenuTextAppearance">@style/ActionMenuItemWhite</item>
    <item name="actionMenuTextColor">@android:color/white</item>
</style>

<!-- Base application theme. -->
<style name="AppTheme.Base" parent="Theme.AppCompat.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
    <item name="windowActionBarOverlay">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:editTextStyle">@style/LightEditText</item>
    <item name="alertDialogTheme">@style/CustomAlertDialog</item>
    <item name="colorAccent">@android:color/white</item>
    <item name="colorControlHighlight">@color/appButtonHighlightColor</item>
    <item name="android:textSize">@dimen/material_text_button</item>
    <item name="colorButtonNormal">@color/appButtonColor</item>
    <item name="colorPrimary">@color/appToolbarColor</item>
    <item name="colorPrimaryDark">@color/appStatusBarColor</item>
    <item name="android:dividerHeight">1px</item>
    <item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
    <!-- Customize your theme here. -->
</style> 
<style name="ToolbarTheme" parent="Base.ThemeOverlay.AppCompat.ActionBar">
    <item name="actionMenuTextColor">@android:color/white</item>
    <item name="android:actionMenuTextAppearance">@style/ActionMenuItemWhite</item>
</style>
   <style name="ActionMenuItemWhite" parent="Widget.AppCompat.Light.ActionButton">
    <item name="actionMenuTextColor">@color/appTextColor</item>
    <item name="android:background">@android:color/transparent</item>
    <item name="android:textSize">@dimen/material_text_menu</item>
</style>

我可能在這里誤會了,但是為什么他們的MenuItems從Fragments膨脹了呢? 通常,“ v7.appcompat.toolbar”會在“主活動”中將其MenuItems誇大。

也是僅供參考,但是在最近的一段時間里,當我嘗試通過更改樣式/主題中的“ ActionBar”設置來更改某些“ ToolBar”設置時,我自己得到的結果復雜且不可靠。

您為什么選擇16作為最小值? 讓您的應用從API 23開始向后兼容是非常棘手的,因為在比較API 21之前的版本和API 21之后的版本時,Android中有很多代碼無法正常工作。

有時,樣式需要android:name項目和name來支持較早的android:name和自定義窗口小部件。例如:

<item name="android:editTextStyle">@style/LightEditText</item>
<item name="editTextStyle">@style/LightEditText</item>

您也可以嘗試將其添加到您的AppTheme.Base樣式中:

<item name="actionButtonStyle">@style/ActionMenuItemWhite</item>

請嘗試更改appcompat-v7庫版本

  compile 'com.android.support:appcompat-v7:23.1.1'

Bcoz不支持v7:23.2+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM