Доза переполнения меню Anroid по умолчанию не реагирует на щелчок quik должным образом. Когда я дважды щелкаю раскрывающееся меню, я хочу открыть меню, а затем щелкнуть первый элемент внутри него. Но меню переполнения по умолчанию всегда помещает мой второй щелчок в другое место.
В приведенном выше гифке второй щелчок всегда приходится на 4-й элемент (первый элемент - «зафиксировать», четвертый - «сохранить как»).
Однако в таких приложениях, как ebdic или chrome, меню переполнения действительно реагирует на быстрые щелчки:
P.S. android: popupAnimationStyle и android: windowAnimationStyle здесь бесполезны.
Установите задержку между щелчками. Пользовательский интерфейс 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».