Android белый экран под моей пользовательской клавиатурой, когда меняются клавиатуры в приложении - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть пользовательская клавиатура, предназначенная для игры в текстовую игру.Проблема в том, что когда я переключаю свою клавиатуру с основной (клавиатура) на другую (клавиатуру путешествия), белый экран закрывает немного зелья в нижней части клавиатуры и остается до перезагрузки клавиатуры.Нет проблем, если я не переключусь на свою travelkeyboard . Проблема обнаружена только в устройстве Android OREO LG Stylo 4.

моя основная клавиатура xml: keyboard = new Keyboard(this, R.xml.drpgkey);

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyHeight="9%p"
android:keyWidth="10%p"
android:verticalGap="0.55%p">

<Row>
    <Key
        android:codes="888"
        android:keyEdgeFlags="left"
        android:keyHeight="27%p"
        android:keyLabel="ADV"
        android:keyWidth="40%p" />

    <Key
        android:codes="907"
        android:horizontalGap="1%p"
        android:keyLabel="MINE"
        android:keyWidth="29%p" />
    <Key
        android:codes="905"
        android:horizontalGap="1%p"
        android:keyEdgeFlags="right"
        android:keyLabel="CHOP"
        android:keyWidth="29%p" />
</Row>

<Row>
    <Key
        android:codes="906"
        android:horizontalGap="41%p"
        android:keyLabel="FORAGE"
        android:keyWidth="29%p" />
    <Key
        android:codes="908"
        android:horizontalGap="1%p"
        android:keyEdgeFlags="right"
        android:keyLabel="FISH"
        android:keyWidth="29%p" />
</Row>

<Row
    android:keyHeight="8%p"
    android:keyboardMode="@integer/default_keys">
    <Key
        android:codes="201"
        android:horizontalGap="41%p"
        android:keyLabel="O.o"
        android:keyWidth="11%p"
        android:popupKeyboard="@xml/inv" />
    <Key
        android:codes="334"
        android:horizontalGap="1%p"
        android:keyLabel="Undefined"
        android:keyWidth="35%p"
        android:popupKeyboard="@xml/market" />
    <Key
        android:codes="202"
        android:horizontalGap="1%p"
        android:keyEdgeFlags="right"
        android:keyLabel="o.O"
        android:keyWidth="11%p"
        android:popupKeyboard="@xml/ginv" />
</Row>

<Row
    android:keyHeight="8%p"
    android:keyboardMode="@integer/custom_keys">
    <Key
        android:codes="201"
        android:horizontalGap="41%p"
        android:keyLabel="O_o"
        android:keyWidth="11%p"
        android:popupKeyboard="@xml/customkeys_left" />
    <Key
        android:codes="334"
        android:horizontalGap="1%p"
        android:keyLabel="Undefined"
        android:keyWidth="35%p"
        android:popupKeyboard="@xml/market" />
    <Key
        android:codes="202"
        android:horizontalGap="1%p"
        android:keyEdgeFlags="right"
        android:keyLabel="o_O"
        android:keyWidth="11%p"
        android:popupKeyboard="@xml/customkeys_right" />
</Row>

<Row
    android:keyHeight="8%p"
    android:rowEdgeFlags="bottom">
    <Key
        android:codes="900"
        android:keyEdgeFlags="left"
        android:keyLabel="STATS"
        android:keyWidth="19.20%p"
        android:popupKeyboard="@xml/stats" />
    <Key
        android:codes="901"
        android:keyLabel="PET"
        android:horizontalGap="1%p"
        android:keyWidth="19.20%p" />
    <Key
        android:codes="903"
        android:keyLabel="HEAL"
        android:horizontalGap="1%p"
        android:keyWidth="19.20%p" />
    <Key
        android:codes="904"
        android:keyLabel="PHEAL"
        android:horizontalGap="1%p"
        android:keyWidth="19.20%p" />
    <Key
        android:codes="333"
        android:keyEdgeFlags="right"
        android:keyIcon="@drawable/key_icon"
        android:horizontalGap="1%p"
        android:keyWidth="19.20%p"
        android:popupKeyboard="@xml/optionkey" />
</Row>

my travelkeyboard: travelkeyboard = new Keyboard(this, R.xml.travelkeys);

<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyHeight="9%p"
android:horizontalGap="1%p"
android:keyWidth="28%p"
android:verticalGap="0.55%p">

<Row>
    <Key
        android:codes="701"
        android:keyLabel=""
        android:keyEdgeFlags="left" />
    <Key
        android:codes="702"
        android:keyLabel="" />
    <Key
        android:codes="703"
        android:keyLabel="" />
    <Key
        android:codes="335"
        android:keyEdgeFlags="right"
        android:keyIcon="@drawable/ic_return"
        android:keyWidth="13%p" />
</Row>
<Row>
    <Key
        android:codes="704"
        android:keyLabel=""
        android:keyEdgeFlags="left" />
    <Key
        android:codes="700"
        android:keyIcon="@drawable/ic_location"
        android:popupKeyboard="@xml/tags" />
    <Key
        android:codes="705"
        android:keyLabel="" />
    <Key
        android:codes="909"
        android:keyEdgeFlags="right"
        android:keyIcon="@drawable/ic_search"
        android:keyWidth="13%p" />
</Row>
<Row>
    <Key
        android:codes="706"
        android:keyLabel=""
        android:keyEdgeFlags="left" />
    <Key
        android:codes="707"
        android:keyLabel="" />
    <Key
        android:codes="708"
        android:keyLabel="" />
    <Key
        android:codes="699"
        android:keyEdgeFlags="right"
        android:keyIcon="@drawable/ic_map"
        android:keyWidth="13%p"
        android:popupKeyboard="@xml/runes" />
</Row>
<Row
    android:keyHeight="7%p"
    android:keyWidth="24.25%p"
    android:rowEdgeFlags="bottom">
    <Key
        android:codes="711"
        android:keyEdgeFlags="left"
        android:keyIcon="@drawable/ic_notalk"
        android:popupKeyboard="@xml/task" />
    <Key
        android:codes="712"
        android:keyIcon="@drawable/ic_notalk" />
    <Key
        android:codes="713"
        android:isRepeatable="true"
        android:keyIcon="@drawable/ic_notalk" />
    <Key
        android:codes="714"
        android:keyEdgeFlags="right"
        android:keyIcon="@drawable/ic_notalk" />
</Row>
</Keyboard>

И я меняю клавиатуру клавишей (основной код)

        case 334:          
            kv.setKeyboard(travelkeyboard);
            break;
        case 335:
            kv.setKeyboard(keyboard);
            break;

Изображения: https://imgur.com/a/2WOHtOp

Обнаружено, что проблема заключается втолько на устройствах LG Stylo 4.

...