Как построить быстро реагирующее выпадающее меню переполнения? - PullRequest
0 голосов
/ 08 сентября 2018

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

Однако в таких приложениях, как ebdic или chrome, меню переполнения реагирует на быстрые нажатия: ebdic

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

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

После почти 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».

результат:
enter image description here

0 голосов
/ 08 сентября 2018

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

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

...