Android中使用Contextual ActionMode

Contextual ActionMode

Contextual action mode 是系统对ActionMode的实现,专门用于用户点击Contextual Actions的交互,如果你开发针对Android 3.0以上的应用时,应该考虑使用Contextual ActionMode 展示Contextual Actions ,而不是用Floating context menu.

实现ActionMode.Callback接口

private ActionMode.Callback mActionModeCallback = new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
//加载actions
MenuInflater inflater = mode.getMenuInflater();
    inflater.inflate(R.menu.menu_delete, menu); 
    return true;  
}   

@Override  
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {  
    return false;    
 }    

@Override 
 public boolean onActionItemClicked(ActionMode mode, MenuItem item) {  
    //当actions的item被点击时回掉
    return false; 
}
@Override  
public void onDestroyActionMode(ActionMode mode) {  
  //当action mode销毁时的回掉
  mActionMode = null; 
}
};      

调用startActionMode(Callback callback);

在ListView的item长按回调中或者合适的时候调用startActionMode(mActionModeCallback),该方法会返回一个ActionMode实例,在完成操作后,当用该实例的finish()方法用来销毁。

一些注意

如果你当前activity中存在Appbar或者toolbar,可能出现两个顶部栏的情况。这时候你需要在Activity的theme中添加两个设置项。

true
 //针对使用Appcompat toolbar的情况
true

参考链接

谷歌官方Menu用法
SO上关于两个顶部栏的解决方法

你可能感兴趣的:(Android中使用Contextual ActionMode)