如何关闭EditText
的IME功能?
或者:如何避免显示IME键盘?
我有一个布局,我的特殊键盘位于EditText
下方,因此无需显示IME。请理解我无法将我的键盘实现为IME,因为它特定于此EditText
并且在任何其他上下文中使用它只会导致问题。
我尝试使用
getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
在活动的onCreate()
中,但在这种情况下似乎没有做任何事情。
答案 0 :(得分:6)
想想我找到了一种方法......子类EditText
并覆盖onCheckIsTextEditor()
以返回false:
public class EditTextEx extends EditText {
public EditTextEx(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onCheckIsTextEditor() {
return false;
}
}
我已经测试了它,我根本无法显示软键盘。
答案 1 :(得分:2)
editText.setInputType(EditorInfo.TYPE_NULL);
答案 2 :(得分:0)
在试图让它运作的同时我也试过了:
inputField.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
}
});
inputField.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
return false;
}
});
两者都被调用,但都没有隐藏IME弹出窗口。