Я пытаюсь отобразить светлый режим действий (белый фон, черный текст, черные значки) на темной панели инструментов (фон с настраиваемым цветом через основной цвет, белый текст, белые значки).
Вот определение моего Toolbar
в макете моей деятельности:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/activity_press_toolbar_background"
android:theme="@style/AppTheme.MainToolbar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
Вот упомянутый AppTheme.MainToolbar
:
<style name="AppTheme.MainToolbar" parent="@style/ThemeOverlay.AppCompat.ActionBar"/>
С этими определениями стиля все выглядит так, как я хочу, за исключением значка переполнения на панели инструментов «по умолчанию» (без режима действий), который черный вместо белого. Если я наследую от @style/ThemeOverlay.AppCompat.Dark.ActionBar
для темы Toolbar
, переполнение будет белым, но режим действий также станет темным: темно-серый фон, белый текст и значки.
Я попытался переопределить практически все в своем стиле режима действий:
<style name="AppTheme.ActionMode" parent="Widget.AppCompat.ActionMode">
<item name="background">@android:color/white</item>
<item name="android:titleTextStyle">@style/AppTheme.ActionMode.Title</item>
<item name="titleTextStyle">@style/AppTheme.ActionMode.Title</item>
<item name="actionOverflowButtonStyle">@style/AppTheme.ActionMode.Overflow</item>
<item name="android:actionOverflowButtonStyle">@style/AppTheme.ActionMode.Overflow</item>
</style>
<style name="AppTheme.ActionMode.Title" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textColor">@android:color/black</item>
</style>
<style name="AppTheme.ActionMode.Overflow" parent="Widget.AppCompat.ActionButton.Overflow">
<item name="android:tint">#000000</item>
</style>
Я использовал этот ActionMode
стиль в своем основном стиле:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- ... -->
<item name="actionModeStyle">@style/AppTheme.ActionMode</item>
<item name="android:actionModeStyle">@style/AppTheme.ActionMode</item>
</style>
Все работает… кроме цвета перелива. В режиме действия он белый (на белом, так что…). Если я установил атрибуты actionOverflowButtonStyle
для своего основного стиля, переполнение будет правильно окрашено, но для всего приложения, включая режим действий.
Переопределение всего стиля звучит неправильно - и все равно не работает, по крайней мере, для переполнения. Но я не могу найти способ определить светлый режим действий на темной панели действий. Есть ли способ сделать это?