0

私のアプリは AppCompat ライブラリを使用しており、v23 をターゲットにしており、minSDK は v16 です。現在、Navigation Drawer Fragment を含むアクティビティがあり、メイン アクティビティで 3 つの異なるフラグメントを切り替えています。

私の AppCompatToolbar の色は青色で、アクティビティの背景は灰色です。

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>
4

3 に答える 3

0

ここで誤解しているかもしれませんが、MenuItems が Fragments からインフレートされているのはなぜですか? 通常、「v7.appcompat.toolbar」はメイン アクティビティの MenuItems を膨張させます。

また、参考までに、スタイル/テーマの「ActionBar」設定を変更して「ToolBar」設定の一部を変更しようとした最近の過去に、自分自身で信頼できない結果が混在していました。

最小値として 16 を選択した理由は何ですか? API 21 以前と API 21 以降を比較すると、Android では同じように機能しないコードがたくさんあるため、API 23 以降でアプリを下位互換性にするのは非常に難しい場合があります。

于 2016-03-04T22:32:04.113 に答える
0

appcompat-v7 ライブラリのバージョンを変更してみてください

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

Bcoz は v7:23.2+ をサポートしていません

于 2016-03-07T14:32:37.090 に答える