Пользовательское поведение в контекстном режиме действий

В руководстве по меню разработчика 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>
Другие вопросы по тегам