0

我的应用程序使用AppCompat库,目标是v23和minSDK是v16。我目前有一个导航抽屉片段的活动,我在我的主要活动中切换3个不同的片段。Android API 16菜单项和导航抽屉图标BackgroundColor

我的AppCompatToolbar颜色是蓝色的,我的Activity背景是灰色的。

关于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> 

回答

0

我在这里可能会误解,但为什么他们的MenuItems会从Fragments中膨胀?通常,“v7.appcompat.toolbar”在主活动中扩大它的MenuItems。

也只是FYI,但在最近的过去,当我试图通过更改样式/主题中的“ActionBar”设置来更改某些“ToolBar”设置时,我自己也得到了混合和不可靠的结果。

为什么你选择16作为你的最低要求?从API 23开始,向后兼容应用程序可能非常困难,因为在将API 21与API 21进行比较时,有很多代码在Android中不起作用。

0

有时造型同时需要android:name项目和name支持老机器人和自定义部件...例:

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

你也可以尝试添加到您的AppTheme.Base风格:

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

请尝试改变程序兼容性-v7库版本

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

Bcoz不支持V7:23.2+