android - studio - ¿Cómo se deshabilita la ventana de vista previa de la clave de SoftKeyboard?
keyboard android studio (4)
Al crear su propia SoftKeyboard, se le ofrece una "vista previa de teclas" de forma predeterminada.
¿Cómo desactivas esto?
Editar:
Puede personalizar el diseño de keyPreview
cambiando el atributo <KeyboardView>
android:keyPreviewLayout
. Esto tiene un estilo por defecto para mirar keyboard_key_preview.xml :
Edición 2: Siguiendo mi ser una pista falsa:
El código fuente sugiere proporcionar 0 o no aplicar la etiqueta android:keyPreviewLayout
dará como resultado una vista previa de la clave:
...
case com.android.internal.R.styleable.KeyboardView_keyPreviewLayout:
previewLayout = a.getResourceId(attr, 0);
break;
...
if (previewLayout != 0) {
mPreviewText = (TextView) inflate.inflate(previewLayout, null);
mPreviewTextSizeLarge = (int) mPreviewText.getTextSize();
mPreviewPopup.setContentView(mPreviewText);
mPreviewPopup.setBackgroundDrawable(null);
} else {
mShowPreview = false;
}
He intentado:
- Un KeyboardView con estilo sin keyPreviewLayout (aunque, extrañamente, al reemplazar este valor cambió el estilo de la vista previa).
- Hice una referencia de
keyPreviewLayout
una identificación con un valor de 0 (lo que provoca una caída en la inflación).
Perplejo :( Cualquier ayuda sería muy apreciada!
¿Has probado esto?
public static mEmptyView;
//somewhere where you have the context:
mEmptyView = new View(context);
@Override public View onCreateCandidatesView() {
return mEmptyView;
}
Básicamente, esto siempre devolverá una vista vacía, cuando los candidatos deben aparecer.
Hay un método:
public void setPreviewEnabled(boolean previewEnabled)
Pero no sé en qué versión de la API comienza.
Otra forma - añadir a xml
android: keyPreviewLayout = "@ null"
<android.inputmethodservice.KeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:keyPreviewLayout="@null"
android:visibility="gone"
/>
Si desea manejar Vista previa para teclas particulares significa manejarlo dentro del Método onPress.
override fun onPress(primaryCode: Int) {
handleKeyPreviews(primaryCode)
}
private fun handleKeyPreviews(code: Int) {
when (code) {
Keyboard.KEYCODE_DELETE, Keyboard.KEYCODE_SHIFT, Keyboard.KEYCODE_DONE, 32 ->
keyboardView?.isPreviewEnabled = false
else ->
keyboardView?.isPreviewEnabled = true
}
}