我正在尝试覆盖单个 EditText 字段的软输入键盘。我一直在关注这个出色的示例——将 XML 设置为 inputType="text",然后在 onCreate 中:
EditText amount = (EditText) findViewById(R.id.amount_edit_text);
final EditText amt = amount;
amount.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
showCustomKeyboard(v);
} else {
hideCustomKeyboard();
}
}
});
amount.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showCustomKeyboard(v);
}
});
amount.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
EditText edittext = (EditText) v;
int inType = edittext.getInputType();
edittext.setInputType(InputType.TYPE_NULL);
edittext.onTouchEvent(event);
edittext.setInputType(inType);
return true;
}
});
这在大多数情况下都有效——点击 EditText 会调出我的自定义键盘,但总会有一个跳跃。它非常快,但它会显示我的键盘堆叠在标准键盘之上,然后标准键盘将折叠,我的键盘将被留下。有时,它会任意不崩溃,而只是堆叠......
有没有办法用我自己的键盘覆盖标准键盘而没有这个跳转?