问题描述
我看过其他StackOverflow帖子,但其中许多不起作用,或者评论说它们不起作用。我想知道如何清除对edittext的关注。我希望当我关闭键盘时,它也会失去焦点,但这并没有发生。
因此,每当有人退出应用程序并返回(应用程序在后台运行)时,常规键盘都会显示,即使不应该这样。我有一个用于管理键盘的完整系统。
显示/关闭键盘的代码
private void closeEmojiKeyboard()
{
ivEmoji.setVisibility(View.VISIBLE);
ivKeyboard.setVisibility(View.GONE);
showKeyboard(etMessage);
llEmojiKeyboard.setVisibility(View.GONE);
}
private void showKeyboard(EditText view)
{
view.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view,InputMethodManager.SHOW_IMPLICIT);
}
当有人打开表情符号键盘时用于隐藏键盘的代码
ivEmoji.setVisibility(View.GONE);
ivKeyboard.setVisibility(View.VISIBLE);
hideKeyboard(etMessage);
llEmojiKeyboard.setVisibility(View.VISIBLE);
以及单击editext时隐藏表情符号键盘的代码
llEmojiKeyboard.setVisibility(View.GONE);
showKeyboard(etMessage);
ivEmoji.setVisibility(View.VISIBLE);
ivKeyboard.setVisibility(View.GONE);
rvMessages.scrollToPosition(messagesList.size()-1);
有人可以与我分享一些代码来帮助我集中精力于我的edittext吗?谢谢。
解决方法
可以
例如1。
editText.clearFocus()
例如2。
EditText et = (EditText)view.findViewById(R.id.my_name);
et.setInputType(EditorInfo.TYPE_NULL); // setCursorVisible(false);
,
editText.setEnabled(false);
editText.setFocusable(false);
editText.setFocusableInTouchMode(false);
editText.setCursorVisible(false);
editText.setKeyListener(null);