如何在弹出式键盘中禁用键预览(不在主软键盘布局中)



很容易禁用键预览:只需调用setPreviewEnabled(false),这些烦人的小预览就不会再显示了。但是如果我给任意键附加一个弹出式键盘那么这些预览就会显示在弹出窗口里面:

qwerty.xml:

<Key android:codes="101" 
    android:keyLabel="E" 
    android:popupKeyboard="@xml/popup"
   android:keyTextSize="60sp"/>

popup.xml:

<Row>
    <Key android:codes="-10000"
        android:keyLabel="test"
        android:keyOutputText="test"/>
</Row>
<Row>
    <Key android:codes="-10001"
        android:keyLabel="test2"
        android:keyOutputText="test2"/>
</Row>

不能发布图像,但如果我长按字母'E',然后按test或test2按钮,他们会显示白键预览。

是否也有办法禁用这些关键预览?

在你的弹出式布局中设置这个属性:

android:keyPreviewLayout="0"

android:keyPreviewLayout="@null"

为弹出式键盘视图调用setPreviewEnabled(false)

// Find popup keyboard by its view-id
pKeyboardView
android.inputmethodservice.KeyboardView = (KeyboardView)mHostActivity.findViewById(viewid);
// Disable key-previews for the popup keyboard too
pKeyboardView.setPreviewEnabled(false); 

用setPreviewEnabled(false)创建一个CustomKeyboard在pop .xml中添加您的CustomeKeyboard行,如下所示

<CustomKeyboard 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:keyWidth="10%p"
        android:horizontalGap="0px"
        android:verticalGap="0px"
        android:keyHeight="60px" >
        <Row><Key android:codes="-10000"
            android:keyLabel="test"
            android:keyOutputText="test"/> </Row> 
        <Row><Key android:codes="-10001"
            android:keyLabel="test2"
            android:keyOutputText="test2"/></Row>
</CustomKeyboard>

在keyboardView中使用

设置弹出窗口的布局
android:popupLayout=""

在你的弹出式布局中设置这个属性:

android:keyPreviewLayout="@null"

1)你需要设置你的popupLayout你当前的弹出式布局是这个

2)在你的popupLayout设置android:keyPreviewLayout="@null"这将隐藏你的预览在弹出

更多描述请查看