如何建立反应迅速的溢出下拉菜单?

时间:2018-09-08 06:48:07

标签: android drop-down-menu overflow-menu

Anroid的默认溢出菜单无法正确响应快速单击。当我双击下拉菜单时,我想打开菜单,然后单击其中的第一项。但是默认的溢出菜单总是将我的第二次点击放在其他位置。
image1
在上面的gif中,第二次单击始终位于第4个项目上(第一个项目为“ commit”,第四个项目为“另存为”)

但是在ebdic或chrome等应用中,溢出菜单的确会响应快速单击: ebdic

P.S.,android:popupAnimationStyle和android:windowAnimationStyle在这里没有用。

2 个答案:

答案 0 :(得分:0)

在两次点击之间设置延迟。 android用户界面旨在以人类的速度工作,菜单展开并由人类选择结果。它并不意味着以自动UI最大速度工作。他们不是要修复的错误。

或者,您无法使用内置菜单功能并为此编写自己的UI,这可能是Chrome所做的,因为Chrome早于溢出菜单。但我认为这样做不值得。

答案 1 :(得分:0)

在经历了将近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