2012-04-03 12 views
8

Lo que estoy buscando hacer es ocultar solo las ventanas emergentes que muestran qué tecla está presionando mientras usa un teclado virtual. es posible? Estoy creando mi propio teclado nuevo que no tendrá necesidad de ellos.Ocultar vista previa de la tecla de teclado Android

Por lo que creo que entiendo, la imagen de abajo es el teclado emergente real que se puede elegir para mostrar el uso de android:popupKeyboard y android:popupCharacters en el Keyboard.Key XML.

Popup Android Keyboards

Pero la imagen de abajo es no la misma (ver también this picture). ¿Hay alguna manera de desactivar los siguientes, utilizando XML o incluso mediante programación?

Android Keyboard Popups

Respuesta

14

Después de leer a little bit of the actual android keyboard source code:

Lo que se refería era la "vista previa clave", que es "una ventana emergente que muestra una versión ampliada de la tecla pulsada." De forma predeterminada, la vista previa está habilitada, pero para deshabilitarla, lo suficiente, es setPreviewEnabled(boolean previewEnabled). Que es un método de la clase KeyboardView. API.

+0

hi @Whymarrh si ha desarrollado por su cuenta, también estoy trabajando en softkeyboard donde i estoy enfrentando un problema, donde quiero mostrar múltiples caracteres en una tecla como se muestra en el primer teclado q anterior debajo de 1. He intentado mostrar caracteres múltiples/multilínea en la tecla usando la etiqueta y obtuve resultados como se muestra en este enlace "http : //puu.sh/4Xmz1.png ". Entonces, ¿puede por favor guiarme cómo mostrar múltiples caracteres en la clave ... – Aniket

+0

@Aniket puede ver mi código fuente completo en línea en GitHub: http://git.io/mM7pPQ. Puede intentar usar caracteres Unicode para mostrar lo que necesita en la clave, según este archivo: http://git.io/SXo3GA. – Whymarrh

+0

Me funcionó. Solo tuve que usar el método "setPreviewEnabled (boolean)" de la clase "KeyboardView". –

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 
} 

Además, para obtener la vista y universalmente desactivar la vista previa desde el interior de una clase personalizada que se extiende InputMethodService

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