Dim*_*lov 14 android android-actionbar overflow-menu
当用户打开/关闭ActionBar的溢出菜单(三个点)时我想听,就像这样:
void onOverflowMenu(boolean expanded) {
}
Run Code Online (Sandbox Code Playgroud)
为了处理打开的案例,我尝试过onPrepareOptionsMenu(),但是在构造ActionBar或invalidateOptionsMenu()调用它时会触发它.这不是我想要的.
如果用户选择菜单项,我能够检测到溢出菜单已关闭onMenuItemSelected().但是如果用户通过点击外部菜单,按后退键以及所有其他情况关闭溢出菜单,我也想检测它.
有没有办法实现呢?
sch*_*luk 21
要抓住开放行动Activity:
@Override
public boolean onMenuOpened(int featureId, Menu menu) {
...
return super.onMenuOpened(featureId, menu);
}
Run Code Online (Sandbox Code Playgroud)
要捕获关闭操作,如果用户触摸菜单视图外:
@Override
public void onPanelClosed(int featureId, Menu menu) {
...
}
Run Code Online (Sandbox Code Playgroud)
恕我直言,最简单的方法是设置 ActionBar.OnMenuVisibilityListener
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.addOnMenuVisibilityListener(new ActionBar.OnMenuVisibilityListener() {
@Override
public void onMenuVisibilityChanged(boolean isVisible) {
if (isVisible) {
// menu expanded
} else {
// menu collapsed
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4987 次 |
| 最近记录: |