ijb*_*jby 1 android android-listview ondestroy android-fragments
我已经成功地在Fragment中为ListView实现了CAB,一切正常 - >但当我回击或当我通过导航抽屉更改显示的片段时,CAB保持打开状态.我需要做的是在onDestroy方法中关闭CAB.我试过这个:
listView.clearChoices();
listView.cancelLongPress();
Run Code Online (Sandbox Code Playgroud)
但它对CAB没有影响.有解决方案吗?
我发现如何处理这个很简单的方法:
1)创建ActionMode类型的全局变量:
ActionMode actionMode = null;
Run Code Online (Sandbox Code Playgroud)
2a)在onCreateActionMode()方法中分配ActionMode:
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
getActivity().getMenuInflater().inflate(R.menu.action_mode, menu);
actionMode = mode;
return true;
}
Run Code Online (Sandbox Code Playgroud)
2b)也将它放在onDestroyActionMode()方法中:
@Override
public void onDestroyActionMode(ActionMode mode) {
actionMode = null;
}
Run Code Online (Sandbox Code Playgroud)
3)覆盖onDestroy()方法(如果要在每次片段暂停时关闭CAB,也可以使用onPause(),但这可能会让用户烦恼):
@Override
public void onDestroy() {
super.onDestroy();
//Destroy action mode
if(actionMode != null)
actionMode.finish();
}
Run Code Online (Sandbox Code Playgroud)
就是这样,现在每次你更换Fragment时,它都会取消ActionMode.
| 归档时间: |
|
| 查看次数: |
2882 次 |
| 最近记录: |