Anroid 的默认溢出菜单无法正确响应快速点击。当我双击下拉菜单时,我想打开菜单,然后单击其中的第一项。但是默认的溢出菜单总是把我的第二次点击放在其他地方。
在上面的 gif 中,第二次点击总是落在第 4 项上(第 1 项是“提交”,第 4 项是“另存为”)
但是在 ebdic 或 chrome 等应用程序中,溢出菜单确实会响应快速点击:
PS,android:popupAnimationStyle 和 android:windowAnimationStyle 在这里没用。
在您的点击之间设置延迟。android UI 旨在以人类的速度工作,菜单展开并且人类选择结果。它并不意味着以自动化 UI 最大速度工作。这不是他们要修复的错误。
或者,您不能使用内置菜单功能并为其编写自己的 UI,这可能是 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”。