2012-04-03 126 views
8

我正在做的只是隐藏弹出窗口,显示当前使用软键盘时按下的按键。这可能吗?我正在创建我自己的新键盘,它不需要它们。隐藏Android键盘按键预览

从我的理解中,下面的图片是实际弹出式键盘,您可以选择使用android:popupKeyboardandroid:popupCharactersKeyboard.Key XML中显示。

Popup Android Keyboards

但下面的图片是不相同(见this picture)。有没有办法关闭,使用XML或甚至编程?

Android Keyboard Popups

回答

14

阅读a little bit of the actual android keyboard source code后:

我指的是“键预览”,这是“显示按下的键的放大版本,一个弹出窗口。”默认情况下预览已启用,但要禁用它,简单地说就是setPreviewEnabled(boolean previewEnabled)。这是一个从KeyboardView类的方法。 API

+0

喜@Whymarrh如果你已经对自己开发的客户类中禁用预览,我也正在softkeyboard其中i我面临的问题,我想在一个键上显示多个字符,如您在上面的第一个键盘q下面显示1.我已经尝试过在键上显示多个/多行字符使用标签,然后我得到了输出,如此链接“http ://puu.sh/4Xmz1.png”。所以你可以请指导如何在键上显示多个字符... – Aniket 2013-10-23 14:10:18

+0

@Aniket你可以在GitHub上在线看到我的完整源代码:http://git.io/mM7pPQ。您可以尝试使用Unicode字符来显示您需要的密钥,如下所示:http://git.io/SXo3GA。 – Whymarrh 2013-10-23 19:34:21

+0

它为我工作。我只需要使用“KeyboardView”类中的“setPreviewEnabled(boolean)”方法。 – 2015-07-24 13:05:27

5
public void onPress(int primaryCode) { 
    mInputView.setPreviewEnabled(false); 
} 

public void onRelease(int primaryCode) { 
    mInputView.setPreviewEnabled(true); //Change to false if you want remove too for the Del key when it's pressed 
} 

此外,为了让观点和普遍延伸自InputMethodService

private KeyboardView mInputView; 
    @Override 
    public KeyboardView onCreateInputView() { 
     mInputView = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null); 
     mInputView .setPreviewEnabled(false); 
     return mInputView; 
    }