Intereting Posts
Жизненный цикл андроида onActivityResult vs onStop Получить расширение файла выбранного файла с целью Как получить отпечаток MD5 от Mavericks Сервер adb устарел. Убийство … не может связывать 'tcp: 5037' Сервер ADB не ACK * не смог запустить демон * в ubuntu 14.04 LTS Android: будет активирован динамически зарегистрированный широковещательный приемник, если процесс приложения был убит Как запустить приложение Sencha Touch в Eclipse Android AppWidget TextView: как установить цвет фона во время выполнения Копировать конструктор с использованием «initWith» для «productFlavors» и «sourceSets» Отключение интеллектуального текста для поля пароля на веб-сайтах Как я могу наложить собственный вид поверх CordovaWebView PhoneGap на Android? Есть ли способ использовать Twitter Digits без кнопки в Android? Объекты темы, а не сбор мусора после завершения Разный стиль шрифта подсказки и введенный стиль шрифта и стиль шрифта Как выровнять linearlayout с вертикальным центром? BitmapFactory.decodeResource Bitmap не оригинальный размер в пикселях

Настройка цвета стрелки «назад» в Actionmode с помощью appcompat-v7

Моя основная тема основана на Theme.AppCompat.Light следующим образом:

 <style name="core" parent="Theme.AppCompat.Light" > <!-- Material, Yo!--> <item name="colorPrimary">@color/theme_main_color</item> <item name="colorPrimaryDark">@color/deep_purple</item> <item name="colorAccent">@color/theme_accent_color</item> <item name="android:navigationBarColor" tools:ignore="NewApi">?attr/colorPrimary</item> <!-- Toolbar --> <item name="theme">@style/my_toolbar_theme</item> <item name="drawerArrowStyle">@style/my_drawer_arrow</item> <!-- Actionbar --> <item name="android:actionBarDivider">@null</item> <item name="android:actionBarTabStyle">@null</item> <item name="android:actionBarTabBarStyle">@null</item> <!-- Contextual Actionbar --> <item name="windowActionModeOverlay">true</item> <item name="actionModeBackground">?attr/colorAccent</item> <item name="actionModeStyle">@style/my_actionmode_style</item> </style> <style name="my_drawer_arrow" parent="Widget.AppCompat.DrawerArrowToggle" > <item name="spinBars">true</item> <item name="color">@color/theme_accent_color</item> </style> <style name="my_toolbar_style"> <item name="android:id">@id/toolbar</item> <item name="android:minHeight">?attr/actionBarSize</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_width">match_parent</item> <item name="android:background">?attr/colorPrimary</item> <item name="android:elevation" tools:ignore="NewApi">5dp</item> </style> <style name="my_actionmode_style" parent="Widget.AppCompat.Light.ActionMode.Inverse" > <item name="titleTextStyle">@style/my_actionmode_title_style</item> <item name="subtitleTextStyle">@style/my_actionmode_subtitle_style</item> </style> <style name="my_toolbar_style.gradient"> <item name="android:background">@drawable/ab_gradient_bg</item> </style> <style name="my_toolbar_theme" parent="ThemeOverlay.AppCompat.Dark.ActionBar" > <!-- Customize the toolbar here --> </style> <style name="my_actionmode_title_style" parent="TextAppearance.AppCompat.Widget.ActionMode.Title"> <item name="android:textColor">@color/std_white</item> </style> <style name="my_actionmode_subtitle_style" parent="TextAppearance.AppCompat.Widget.ActionMode.Subtitle"> <item name="android:textColor">@android:color/white</item> </style> 

В actionmode я бы хотел увидеть белый заголовок / субтитры с белой стрелкой назад. Я смог установить цвет текста заголовка и текста субтитров на белый, но стрелка назад остается черной. Эта проблема возникает только в тех местах, где я использую панель SupportActionbar, а не панель инструментов (стрелка назад на панели инструментов белая).

Это моя панель инструментов в ActionMode.

Это моя панель инструментов в ActionMode

Это панель действий в ActionMode. Тот же телефон, одно и то же приложение, те же темы, просто другое занятие.

Это панель действий в ActionMode

Я не могу найти ничего в тем, которые определяли бы этот цвет. Согласно источнику, значок @drawable/abc_ic_ab_back_mtrl_am_alpha , который является белым, поэтому что-то должно его подкрасить. Откуда берется этот черный цвет?

Чтобы настроить его с помощью AppCompat:

В теме вашего приложения:

 <style name="MyTheme" parent="Theme.AppCompat.Light"> <item name="actionModeCloseDrawable">@drawable/ic_actionbar_back</item> <item name="actionModeCloseButtonStyle">@style/myclosebutton</item> </style> 

В CloseButtonStyle:

 <style name="myclosebutton" parent="Widget.AppCompat.Light.ActionButton.CloseMode"> <item name="android:tint">#ff0</item> <!-- whatever color --> </style> 

У меня была такая же проблема, и я решил ее, явно объявив значок, который я хочу использовать в стиле:

 <item name="android:actionModeCloseDrawable">@drawable/ab_back</item> 

Где @ drawable / ab_back предоставляется мной.

Это не идеально, поскольку я хотел бы правильно установить стиль и позволить ему работать, наследуя правильные цвета от родительской темы, без необходимости объявления таких конкретных деталей. Но я чувствую, что все вокруг ActionBar, SupportActionBar, SherlockActionBar, ActionBarActivity, FragmentActivityWithASherlockSupportActionToolbar так сломанно и плохо спроектировано, что я рад решить его с помощью обходного пути.

Попробуйте свойство colorControlNormal. Как указано ниже в вашей теме «NoActionBar»,

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <style name="AppTheme.NoActionBar"> <item name="colorControlNormal">@android:color/white</item> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style> 

У меня есть лучший ответ для этого

  Spannable text = new SpannableString( mode.getTitle()); text.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.colorPrimaryDark)), 0, text.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); mode.setTitle(text);