38

AppCompat Toolbar を使用して、ActionMode 変更時にオーバーフロー メニュー アイコンの色を変更できるようにしたいと考えています。

たとえば、オーバーフロー アイコンは、通常のツールバー モードでは白になります。ActionMode では黒くなります。これまでのところ、アクション モードの背景とタイトル テキストを変更することができました。しかし、オーバーフロー メニュー アイコンの色を変更する方法をまだ見つけていません。

利用可能な答えがあることを知っています: ActionMode オーバーフロー アイコンを変更する

最初の解決策を試しましたが、オーバーフロー アイコンが見つかりませんでした。

2 番目の解決策では、50L の遅延がある場合でも、オーバーフロー メニュー アイコンが ActionMode の意図した色でほんの一瞬点滅しますが、これは非常に耳障りです。

4

12 に答える 12

73

以下の行をテーマ属性に追加します。

<item name="android:textColorSecondary">@android:color/white</item>
于 2015-06-30T13:06:44.483 に答える
3

ツールバーのオーバーフロー メニュー アイコンの色を正しく変更するには、ツールバーのテーマを AppCompat の暗い ActionBar テーマに設定します。例えば:

res/values/style.xml ファイルで、次の方法で AppCompat から継承するテーマを作成します。

<style name="AppTheme.MyThemeName" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

ツールバーのテーマを次のテーマに設定します。

<android.support.v7.widget.Toolbar
  android:id="+id/my_toolbar_id
  android:layout_width="match_parent"
  android:layout_height="@dimen/my_toolbar_height"
  android:theme="@style/AppTheme.MyThemeName">

</android.support.v7.widget.Toolbar>
于 2016-12-14T16:33:05.570 に答える
3

ここでの回答はどれも、通常のツールバーのオーバーフロー アイコンの色とは別に、ActionMode のオーバーフロー アイコンの色を変更するのに役立ちませんでした (コードでケースバイケースのスタイリングに頼ることなく)。試行錯誤themeの結果、ActionMode の属性を Toolbar とは別にオーバーライドできるのではないかと考えたところ、うまくいきました。

ベーステーマでは、いつものようにアクションモードのスタイルを指定します:

<style name="BaseTheme" parent="Theme.MaterialComponents.DayNight.Bridge">
        <item name="actionModeStyle">@style/ActionModeStyle</item>
</style>

カスタムActionModeStyleでは、必要なスタイリングを行い、theme属性も指定します。

<style name="ActionModeStyle" parent="@style/Widget.AppCompat.ActionMode">
        <item name="theme">@style/ActionMode.Theme</item>
</style>

<style name="ActionMode.Theme" parent="ThemeOverlay.AppCompat.Dark">
        <item name="android:textColorSecondary">?attr/colorPrimary</item>
</style>

textColorSecondary戻るボタンの色も変更されますが、 を使用して簡単にオーバーライドできますactionModeCloseButtonStyle

于 2019-11-09T20:13:13.790 に答える