如何构建快速反应的溢出下拉菜单?

问题描述 投票:0回答:2

Anroid的默认溢出菜单无法正确响应quik点击。当我双击下拉菜单时,我想打开菜单,然后单击其中的第一个项目。但默认的溢出菜单总是让我的第二次点击其他地方。 在上面的gif中,第二次点击总是落在第4项(第一项是'commit',第4项'另存为')

但是在像ebdic或chrome这样的应用程序中,溢出菜单会对快速点击做出响应:ebdic

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

android drop-down-menu overflow-menu
2个回答
0
投票

延迟点击次数。 Android UI旨在以人类的速度工作,菜单扩展,人类选择结果。它并不意味着以自动UI最大速度工作。这不是他们要解决的错误。

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


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

© www.soinside.com 2019 - 2024. All rights reserved.