开发者

How do you disable the SoftKeyboard key preview window?

When creating your own SoftKeyboard you are given a "key preview" by default.

How do you disable the SoftKeyboard key preview window?

How do you disable the SoftKeyboard key preview window?

How do you disable this?

Edit:

You can customise the keyPreview layout by changing the <KeyboardView> attribute android:keyPreviewLayout. This is styled by default to look at keyboard_key_preview.xml:

Edit 2: Following my be a red herring:

The source code suggests supplying 0 or not applying the tag android:keyPreviewLayout will result in no key preview appearing:

    ...
    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;
    }  

I've tried:

  • A开发者_JAVA百科 styled KeyboardView with no keyPreviewLayout (Strangely though replacing this value changed the style of the preview.)
  • I made a keyPreviewLayout reference an id with a value of 0 (which causes a crash on inflation).

Stumped. :( Any help would be greatly appreciated!


There's a method:

public void setPreviewEnabled(boolean previewEnabled)

But I don't know which version of the API that starts at.


Another way - add to 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"
    />


Have you tried this:

public static mEmptyView;

//somewhere where you have the context:
mEmptyView = new View(context);

@Override public View onCreateCandidatesView() {
    return mEmptyView;
}

This basically will always return an empty view, when the candidates should show up.


If you want to handle Preview for Particular Keys means handle it inside onPress Method.

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
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜