我的应用程序使用 AppCompat 库,目标是 v23,minSDK 是 v16。我目前有一个带有导航抽屉片段的活动,我在主活动上的 3 个不同片段之间切换。
我的 AppCompatToolbar 颜色是蓝色的,我的 Activity 背景是灰色的。
在 API 16 上:我的导航抽屉图标(设置为主页按钮)和任何从我的片段膨胀的 MenuItem 在我的蓝色工具栏顶部周围都有灰色背景。
在 API 17+ 上:一切看起来都很好。icon 和 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>