3

我有很多EditText我设置了一些,setInputType(InputType.TYPE_NULL)让我们的输入视图来处理插入数据。

但其中一些,我使用来自EditText.

当我触摸普通EditText普通键盘时,当我触摸我的自定义普通键盘时,从这个状态开始,我的自定义EditText普通键盘不会立即隐藏,我的自定义输入显示在该键盘上方。

谢谢。

4

2 回答 2

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>

希望你能理解。

随时发表评论。

于 2013-01-30T04:12:57.680 回答
0
  1. 将以下方法添加到您想要隐藏内置SoftKeyBoard.

    public void hideSoftKeyboard(Activity activity) {
        InputMethodManager inputMethodManager = (InputMethodManager)  activity.getSystemService(Activity.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);
    }
    
  2. 现在在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;
        }
    });
    

在这里,您可以打开自定义键盘,因为它隐藏了内置键盘。我希望这可以帮助你。

于 2013-01-30T04:22:40.393 回答