Пользовательское поведение в контекстном режиме действий
В руководстве по меню разработчика Android упоминается, что:
Режим действия отключен, и контекстная панель действий исчезает, когда пользователь отменяет выбор всех элементов, нажимает кнопку НАЗАД или выбирает действие "Готово" в левой части панели.
Технически это означает, что mActionMode.finish()
, BACK
нажмите кнопку или Done
вызов выбора действия ActionMode.Callback onDestroyActionMode()
метод.
У меня вопрос, как выполнить пользовательское действие (например, Toast("Action mode exit by Done select")
) когда пользователь выбирает Done
и другое действие (например, Toast("Action mode exit by BACK")
) когда пользователь нажимает BACK
?
1 ответ
Один из подходов, который вы можете использовать для решения этой проблемы, - это использование темы, чтобы скрыть кнопку "Готово" в создаваемых вами режимах действий. Затем вы просто добавляете свою собственную кнопку "Готово" в каждый созданный вами режим действия. Очевидно, тогда вы можете отслеживать, onDestroyActionMode
был вызван из-за нажатия кнопки "Готово" или кнопки "Назад". Вот тема, которую вы можете применить к действиям, которые вам необходимы для этого.
<style name="HideActionModeCloseTheme" parent="@android:style/Theme.DeviceDefault">
<item name="android:actionModeCloseButtonStyle">@style/NoCloseButton</item>
</style>
<style name="NoCloseButton" parent="@android:style/Widget.DeviceDefault.ActionButton.CloseMode">
<item name="android:visibility">invisible</item>
</style>