我有一个可选的TextView,并且我想防止在选择文本时显示操作菜单。
我实现了此代码,但仍显示操作菜单。
tv.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
// Return true to ensure the yourTextView is still selectable
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
// Remove all action items to provide an actionmode-less selection
menu.clear();
return false;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode actionMode) {
}
});
如何永久删除?
我想,最后写了下面的代码:
tv.setCustomSelectionActionModeCallback(new ActionMode.Callback() {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
removeActionBar(getWindow().getDecorView());
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode actionMode) {
}
});
private void removeActionBar(View v) {
ViewGroup viewgroup = (ViewGroup) v;
for (int i = 0; i < viewgroup.getChildCount(); i++) {
View v1=viewgroup.getChildAt(i);
if ( v1 instanceof ViewGroup )
removeActionBar(v1);
if ( v1 instanceof ActionBarContextView ) {
viewgroup.removeView(v1);
}
}
}