Contextual ActionMode
Contextual action mode 是系統(tǒng)對ActionMode的實現(xiàn),專門用于用戶點擊Contextual Actions的交互瘪校,如果你開發(fā)針對Android 3.0以上的應(yīng)用時盆繁,應(yīng)該考慮使用Contextual ActionMode 展示Contextual Actions ,而不是用Floating context menu.
實現(xiàn)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;
}
};
調(diào)用startActionMode(Callback callback);
在ListView的item長按回調(diào)中或者合適的時候調(diào)用startActionMode(mActionModeCallback),該方法會返回一個ActionMode實例,在完成操作后敛熬,當用該實例的finish()方法用來銷毀。
一些注意
如果你當前activity中存在Appbar或者toolbar揣非,可能出現(xiàn)兩個頂部欄的情況堕仔。這時候你需要在Activity的theme中添加兩個設(shè)置項。
<item name="android:windowActionModeOverlay">true</item>
//針對使用Appcompat toolbar的情況
<item name="windowActionModeOverlay">true</item>