Как создать быстро реагирующее раскрывающееся меню переполнения?

Доза переполнения меню Anroid по умолчанию не реагирует на щелчок quik должным образом. Когда я дважды щелкаю раскрывающееся меню, я хочу открыть меню, а затем щелкнуть первый элемент внутри него. Но меню переполнения по умолчанию всегда помещает мой второй щелчок в другое место. Как создать быстро реагирующее раскрывающееся меню переполнения?
В приведенном выше гифке второй щелчок всегда приходится на 4-й элемент (первый элемент - «зафиксировать», четвертый - «сохранить как»).

Однако в таких приложениях, как ebdic или chrome, меню переполнения действительно реагирует на быстрые щелчки: Как создать быстро реагирующее раскрывающееся меню переполнения?

P.S. android: popupAnimationStyle и android: windowAnimationStyle здесь бесполезны.

0
0
80
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

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

Ответ принят как подходящий

После почти 3 часов разочарования у меня теперь есть свой ответ :)
Вначале меню переполнения ведет себя иначе; Я могу щелкнуть очень быстро и получить ожидаемый результат в меню переполнения по умолчанию в android 4.4. Но в более поздних версиях поведение по умолчанию меняется. Да, используя AnimationStyle, я ничего не могу с этим поделать, вместо этого я должен настроить actionOverflowMenuStyle.

<style name = "toolbarTheme" parent = "AppTheme">
    <item name = "android:textColorSecondary">@android:color/white</item>
    <item name = "colorAccent">@color/colorHeaderBlue</item>
    <item name = "actionOverflowMenuStyle">@style/OverflowMenuStyle</item>
    <!--item name = "android:popupBackground">@android:color/white</item-->
    <item name = "android:popupBackground">@drawable/round_corner_card1_1cor</item>
</style>

<style name = "OverflowMenuStyle">
    <item name = "overlapAnchor">true</item>
    <item name = "android:dropDownVerticalOffset">0dip</item>
    <item name = "android:dropDownHorizontalOffset">0dip</item>
</style>

обратите внимание на родительскую тему OverflowMenuStyle, оставьте ее пустой или установите как «Base.Widget.AppCompat.ListView.Menu».

результат:

Другие вопросы по теме