Android8.0屏蔽EditText的长按Menu
需求
自定义键盘+Edittext,同是屏蔽软键盘弹出(页面是Fragment)
屏蔽软键盘
Fragment的onActivityCreated方法中添加
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
try {
Class<EditText> cls = EditText.class;
Method setSoftInputShownOnFocus;
setSoftInputShownOnFocus = cls.getMethod("setShowSoftInputOnFocus", boolean.class);
setSoftInputShownOnFocus.setAccessible(true);
setSoftInputShownOnFocus.invoke(mEditPhoneNum, false);
} catch (Exception e) {
e.printStackTrace();
}
屏蔽EditText长按时显示的复制粘贴菜单
###第一种
(但是没有完全屏蔽还是会弹出SelectAll选项)
mEdit.setCustomSelectionActionModeCallback(new Callback() {
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
mEditSearch.setBackgroundColor(Color.TRANSPARENT);
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}
});
###第二种
同时添加下面代码
mEdit.setLongClickable(false);
mEdit.setTextIsSelectable(false);