android - Actionbar 的溢出菜单打开/关闭监听器

标签 android android-actionbar overflow-menu

我想在用户打开/关闭 ActionBar 的溢出菜单(三个点)时收听,就像这样:

void onOverflowMenu(boolean expanded) {
}

为了处理打开的案例,我尝试了 onPrepareOptionsMenu(),但它是在构建 ActionBar 或调用 invalidateOptionsMenu() 时触发的。这不是我想要的。

如果用户在 onMenuItemSelected() 中选择菜单项,我能够检测到溢出菜单已关闭。但我也想检测用户是否通过点击菜单外部、按下返回键以及所有其他情况来关闭溢出菜单。

有什么办法可以实现吗?

最佳答案

Activity 中捕获打开的 Action :

@Override
public boolean onMenuOpened(int featureId, Menu menu) {
    ...
    return super.onMenuOpened(featureId, menu);
}

要捕获关闭的 Action ,即使用户在菜单 View 之外触摸也是如此:

@Override
public void onPanelClosed(int featureId, Menu menu) {
    ...
}

关于android - Actionbar 的溢出菜单打开/关闭监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23806383/

相关文章:

android - 选项卡未按照我的意愿在 Android 中自定义

android - 这是什么意思 "xmlns:xliff"? XML

c# - 在使用 Xamarin 完成方法之前,UI 不会更新

android - 如何专注于操作栏中的可折叠操作 View EditText 项(展开时)并强制打开软键盘?

java - 点击后如何保持溢出菜单?

android - 在溢出按钮上锚定弹出菜单

android - 位置 :fixed, 100% 高度和移动滚动

android - 上下文操作模式自定义行为

android - 知道为什么 Material 设计 "home up"按钮在旋转后会变黑吗?

android - 检测点击 Actionbar 的溢出菜单按钮