web-dev-qa-db-ja.com

Android 5.0 Lollipop(AppCompatを使用)でのActionMode ActionBarのスタイル設定

このチュートリアルを使用して、Lollipop用のHoloアプリを改造しました: http://Android-developers.blogspot.ru/2014/10/appcompat-v21-material-design-for-pre.html

私が持っているもの:

  1. テーマ

    _<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
      <item name="windowActionModeOverlay">true</item>
      <item name="colorPrimary">@color/theme_primary</item>
      <item name="colorPrimaryDark">@color/theme_primary_dark</item>
      <item name="colorAccent">@color/theme_accent</item>
    </style>
    _
  2. ツールバーのレイアウト

    _<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
      xmlns:app="http://schemas.Android.com/apk/res-auto"
      Android:id="@+id/toolbar"
      Android:layout_height="wrap_content"
      Android:layout_width="match_parent"
      Android:minHeight="?attr/actionBarSize"
      Android:background="?attr/colorPrimary"
      app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    _
  3. 複数選択モードでListFragmentフラグメントを使用してActionBarActivityから継承されたアクティビティ

    getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);

結果:ツールバーはOKです。指定されたテーマカラーを使用しますが、ActionModeのListFragmentで使用されるActionBar(リストアイテムをタップアンドホールドすることでアクティブ化)には、標準のDark.ActionBarカラーがあります。また、アクションバーのポップアップメニューはダークテーマを使用します。

すべてのSOトリックを試してみましたが、それでも解決できません。助けていただければ幸いです。

ところで。 ActionBarの暗い色はツールバーの_app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"_が原因であることがわかりましたが、この属性がツールバーの正しい外観に必要であるため、これを解決する方法がわかりません。

Toolbar with correct colorsDark ActionBar

38

次の2行をテーマに追加するだけです。

<item name="actionModeBackground">@color/theme_primary_dark</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Light</item>
76

これは、個々の色をより詳細に制御したい場合に、 @ Andrey Shcherbakov の回答に加えて役立つ場合があります。

<!-- action bar title text color, icon color (ie: back icon, icons when editing text)-->
<item name="Android:textColorPrimary">#FFFF00</item>

<!-- action bar background color-->
<item name="Android:colorBackground">#444400</item>

<!-- color of line under contextual action bar-->
<item name="colorControlActivated">#00CC00</item>
3
waynesford