Intereting Posts
Есть ли компиляция ошибок устройства для устройств Android? Проверьте, работает ли служба на Android? Как запустить устройство Genymotion с командой оболочки? Как сделать линейную раскладку прокручиваемой? Android, как получить список каталогов? Для Android, следует ли использовать тип данных float чаще для моей игры или просто бросать плавать при рисовании? HttpURLConnection PUT для Google Cloud Storage, дающий ошибку 403 Скрытие ключа шифрования в приложении для Android Значок в закладке не отображается Предоставление тестовых данных для SharedPreferences для Robolectric Заполнение между иконкой и заголовком ActionBar Использование пользовательской кнопки входа с Твиттером Twitter? Получите все подписанные темы из облачных сообщений firebase Не удается создать и запустить проект тестирования Android, созданный с помощью «ant create test-project», когда тестируемый проект имеет банки в каталоге libs Как настроить Android Studio в El Capitan (OS X 10.11)?

Невозможно настроить режим действия при использовании панели инструментов

Я не уверен, что это ошибка, или почему-то я не использую новый класс панели инструментов должным образом.

Я могу успешно использовать ActionBar, используя одну из доступных тем. Это также позволяет мне описывать ActionMode. Все работает отлично, как ожидалось. Вот как я это делаю.

<style name="Theme.ActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="actionModeBackground">@drawable/action_mode_background</item> </style> 

Теперь я ищу немного большую гибкость, поэтому я пытаюсь использовать новую панель инструментов из библиотеки поддержки. Совершенствование панели инструментов реализовано и работает отлично, однако теперь режим действия больше не работает так, как ожидалось. Пользовательский фон не работает и панель режима действия нажимает панель инструментов вниз.

Чтобы исправить проблему с нажатием, я использовал флаг windowActionModeOverlay . Для меня тот факт, что режим действия не входит в панель инструментов, засасывает …: /

 <style name="Theme.ActionBar" parent="@style/Theme.AppCompat.Light.DarkActionBar"> <item name="windowActionBar">false</item> <item name="windowActionModeOverlay">true</item> <item name="actionModeBackground">@drawable/action_mode_background</item> </style> 

В моей деятельности я делаю следующее, чтобы сделать панель инструментов по умолчанию ActionBar.

 Toolbar toolbar = (Toolbar) findViewById(R.id.toolBar); setSupportActionBar(toolbar); 

Прямо сейчас я пробовал так много всего. Я даже попытался погрузиться в источник, чтобы выяснить, что происходит.

Есть идеи, почему это происходит? Как я могу создать ActionMode? Или более конкретно, как я могу изменить фон ActionMode?


Обновление 1
Я заметил, что при добавлении в тему активности <item name="windowActionBar">false</item> режим действия теряет свою тему против того, чтобы она была истиной. Очевидно, что установка этого значения будет включать в себя панель действий окна.


Обновление 2
Я смог правильно настроить режим действия, используя пару модов.

  1. Фон режима действия. Оказывается, вы просто устанавливаете фон непосредственно на тему ActionMode в качестве андроида: фон! Кроме того, текст, который вам нужно указать на тему.

    <item name="actionModeStyle">@style/Widget.ActionMode</item>
    <style name="Widget.ActionMode" parent="@style/Widget.AppCompat.ActionMode"> <item name="android:background">@drawable/action_mode_background</item> <item name="titleTextStyle">@style/TitleTextStyle</item> </style>

  2. Обратная стрелка не получает стиля. Я перезаписал использованную для рисования и просто добавил свой собственный в белый цвет.
    <item name="actionModeCloseDrawable">@drawable/ic_arrow_back_white_24dp</item>

Solutions Collecting From Web of "Невозможно настроить режим действия при использовании панели инструментов"

Ну, наконец, я смог правильно создать режим действия после того, как вы выкапывали некоторые стили, темы, attrs и код из библиотеки поддержки.

Прежде чем я предоставлю решение по моему вопросу, я должен упомянуть, что в библиотеке поддержки есть ошибка. Похоже, что эта функция отключена, когда вы скрываете панель действий окна. Я сообщил об ошибке, чтобы узнать, исправляют ли они это или предоставляют более подробную информацию.

Таким образом, решение заключалось в том, чтобы по существу стилизовать фон, текст и закрыть значок сам. Для этого нужно использовать мой собственный стиль ActionMode и изменить указатель атрибута на значок закрытия.

themes.xml

 <style name="Theme.Main.Home"> <item name="windowActionModeOverlay">true</item> <item name="actionModeStyle">@style/Widget.ActionMode</item> <item name="actionModeCloseDrawable">@drawable/ic_arrow_back_white_24dp</item> </style> 

styles.xml

 <style name="Widget.ActionMode" parent="@style/Widget.AppCompat.ActionMode"> <item name="android:background">@drawable/action_mode_background</item> <item name="titleTextStyle">@style/TitleTextStyle</item> </style> 
  • Задний план
    Это было сложно, потому что actionModeBackground не работает для установки фона режима действия. Вы должны изменить фон с помощью стандартного android:background в стиле ActionMode.
  • Текст заголовка
    Простое предоставление общего стиля для titleTextStyle позволило изменить цвет текста.
  • Закрыть значок
    actionModeCloseDrawable значки материалов и добавили иконку close my, используя actionModeCloseDrawable attr.