Подтвердить что ты не робот

Панель инструментов AppCompat: изменение цвета значка переполнения в ActionMode

С помощью панели инструментов AppCompat я хочу изменить цвет значка меню переполнения при изменении ActionMode.

Например, значок переполнения будет белым в обычном режиме панели инструментов. И станет черным на ActionMode. До сих пор мне удалось изменить фон режима действия, а также текст заголовка. Но мне еще предстоит найти способ изменить цвет значка меню переполнения.

Я знаю, что есть ответ: Изменить значок переполнения ActionMode

Я попробовал первое решение, и я не смог найти значок переполнения.

Второе решение, даже с задержкой 50L, заставляет значок меню переполнения мигать цветом ActionMode для короткой секунды разделения, которая очень раздражает.

4b9b3361

Ответ 1

Добавьте строку ниже в свой атрибут темы:

<item name="android:textColorSecondary">@android:color/white</item>

Ответ 2

Это может быть достигнуто путем установки атрибута темы android:textColorSecondary.

Например, предположим, что у вас есть следующая панель инструментов, которая использует тему MyToolbarStyle:

<android.support.v7.widget.Toolbar
  xmlns:app="http://schemas.android.com/apk/res-auto"
  android:id="@+id/main_toolbar"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:minHeight="?attr/actionBarSize"
  theme="@style/MyToolbarStyle"
/>

Затем определите стиль MyToolbarStyle, унаследованный от ThemeOverlay.AppCompat.ActionBar. Наконец, измените цвет значка переполнения, добавив элемент для android:textColorSecondary:

<style name="MyToolbarStyle" parent="ThemeOverlay.AppCompat.ActionBar">
  <item name="android:textColorSecondary">#333333</item>
</style>

Ответ 3

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
     <item name="android:actionOverflowButtonStyle">@style/ActionButton.Overflow.Icon</item>
 </style>

 <style name="ActionButton.Overflow.Icon" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">
     <item name="android:src">@mipmap/yourwanticon</item>
 </style>

Ответ 4

Добавьте этот код в свой res- > styles.xml

<style name="ToolbarColored" parent="AppTheme">
<item name="android:textColorSecondary">YOUR_COLOR</item>
</style>

Затем ваш стиль "ToolbarColored" в вашем файле XCML, как belove

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        app:theme="@style/ToolbarColored"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay" />

Ответ 5

Чтобы правильно изменить цвет значка меню переполнения панели инструментов, установите тему панели инструментов в темную тему ActionBar AppCompat. Например:

В файле 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>

Ответ 6

<style name="AppTheme" parent="Theme.AppCompat.Light">
    <item name="android:actionOverflowButtonStyle">@style/ActionButtonOverflow</item>

    <!-- Support library compatibility -->
    <item name="actionOverflowButtonStyle">@style/ActionButtonOverflow</item>
</style>

<style name="ActionButtonOverflow" parent="@style/Widget.AppCompat.ActionButton.Overflow">
    <item name="android:tint">@color/brand_white</item>
</style>

Ответ 7

Сначала создайте свой собственный стиль

 <style name="ToolbarColoredBackArrow" parent="AppTheme">
    <item name="android:textColorSecondary">@color/white</item>
 </style>

Затем просто добавьте его в свою панель инструментов

     <android.support.v7.widget.Toolbar
          android:id="@+id/toolbar"
          android:layout_width="match_parent"
          android:titleTextColor="@color/white"
          app:theme="@style/ToolbarColoredBackArrow"
          android:layout_height="?attr/actionBarSize"
          app:layout_scrollFlags="scroll|enterAlways"
          android:background="?attr/colorPrimary" />

Ответ 8

Если вы используете панель инструментов в своей деятельности XML, вы можете использовать что-то вроде этого

toolbar?.navigationIcon?.setColorFilter(ContextCompat.getColor(this, android.R.color.black), PorterDuff.Mode.SRC_ATOP)

Ответ 9

Если вам нужен белый значок меню переполнения, просто добавьте android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" в код макета панели инструментов.

Если вам нужен темный значок меню переполнения, используйте android:theme="@style/Base.Widget.AppCompat.Light.PopupMenu"

Итоговый код выглядит примерно так:

<android.support.v7.widget.Toolbar
        android:id="@+id/a_main_tb"
        android:layout_width="match_parent"
        android:layout_height="?actionBarSize"
        android:background="@color/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:title="@string/app_name"
        app:titleTextColor="#ffffff"
        />

Кроме того, вы должны понимать, что это также изменит цвет пунктов меню.

Ответ 10

<style name="ToolBarTheme" parent="ThemeOverlay.AppCompat.ActionBar">
    <item name="android:tint">@color/colorAccent</item>

создайте вышеуказанный оттенок theme.set своим цветом и добавьте эту тему на панель инструментов.

<androidx.appcompat.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="?attr/actionBarSize"
        android:theme="@style/ToolBarTheme"/>