我有很多EditText
我将其中一些设置为setInputType(InputType.TYPE_NULL)
,让我们的输入视图处理插入数据。
但其中一些,我使用EditText
的原始键盘。
当我触摸正常的EditText
普通键盘时,当我触摸我的自定义EditText
时,键盘显示并处于此状态键盘不会立即隐藏,我的自定义输入会显示在该键盘上方。
感谢。
答案 0 :(得分:2)
为什么不使用自己的键盘布局?
或者如果你想使用那么你必须改变它的风格。
这是默认的KeyboardView样式的代码:
<style name="Widget.KeyboardView" parent="android:Widget">
<item name="android:background">@android:drawable/keyboard_background</item>
<item name="android:keyBackground">@android:drawable/btn_keyboard_key</item>
<item name="android:keyTextSize">22sp</item>
<item name="android:keyTextColor">#FFFFFFFF</item>
<item name="android:keyPreviewLayout">@android:layout/keyboard_key_preview</item>
<item name="android:keyPreviewOffset">-12dip</item>
<item name="android:keyPreviewHeight">80dip</item>
<item name="android:labelTextSize">14sp</item>
<item name="android:popupLayout">@android:layout/keyboard_popup_keyboard</item>
<item name="android:verticalCorrection">-10dip</item>
<item name="android:shadowColor">#BB000000</item>
<item name="android:shadowRadius">2.75</item>
</style>
希望你明白。
随意发表评论。
答案 1 :(得分:0)
将以下方法添加到您要隐藏内置SoftKeyBoard
的活动中。
public void hideSoftKeyboard(Activity activity) {
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
}
现在onCreate
在setContentView()
之后添加以下行。
final EditText editText = (EditText) findViewById(R.id.edtTitle);
editText.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
android.util.Log.i(TAG, "Touch");
hideSoftKeyboard(JoinImageActivity.this);
//Open your custom keyboard here
return true;
}
});
在这里,您可以打开自定义键盘,因为它隐藏了内置键盘。我希望这可以帮助你。