Как отключить окно предварительного просмотра клавиши SoftKeyboard?
При создании вашей собственной SoftKeyboard по умолчанию вы получаете "предварительный просмотр ключа".
Как вы отключите это?
Редактировать:
Вы можете настроить keyPreview
макет путем изменения <KeyboardView>
атрибут android:keyPreviewLayout
, По умолчанию это стиль, чтобы посмотреть на keyboard_key_preview.xml:
Изменить 2: После моей быть красной сельди:
Исходный код предлагает указать 0 или не применять тег android:keyPreviewLayout
не приведет к отображению предварительного просмотра ключа:
...
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;
}
Я пробовал:
- Стиль KeyboardView без keyPreviewLayout (как ни странно, хотя замена этого значения изменила стиль предварительного просмотра.)
- я сделал
keyPreviewLayout
ссылаться на идентификатор со значением 0 (что приводит к падению инфляции).
Тупик.:(Любая помощь будет принята с благодарностью!
3 ответа
Есть метод:
public void setPreviewEnabled(boolean previewEnabled)
Но я не знаю, с какой версии API это начинается.
Другой способ - добавить в xml
андроид:keyPreviewLayout="@ нуль"
<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"
/>
Вы пробовали это:
public static mEmptyView;
//somewhere where you have the context:
mEmptyView = new View(context);
@Override public View onCreateCandidatesView() {
return mEmptyView;
}
Это в основном всегда будет возвращать пустое представление, когда кандидаты должны появиться.
Если вы хотите обработать Preview для конкретных ключей, значит обрабатывайте это внутри метода 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
}
}