Пользовательская раскладка клавиатуры не умещается на экране - PullRequest
0 голосов
/ 02 сентября 2018

Я получил специальную клавиатуру для игры в текстовую игру. Проблема в том, что клавиши не подходят, когда я ставлю verticalGap и horizontalGap, чтобы иметь небольшой пробел. Причина, по которой клавиши не умещаются на экране, заключается в том, что у меня есть ключ (основной ключ) высотой 3 строки. Таким образом, я сделал 2-й и 3-й ключи строки 40%p для моего основного ключа (который имеет ширину 40% p). Моя клавиатура xml для клавиш: res / xml / drpgkeys.xml

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

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

    <Key
        android:codes="907"
        android:keyLabel="MINE"
        android:keyWidth="30%p" />
    <Key
        android:codes="905"
        android:keyEdgeFlags="right"
        android:keyLabel="CHOP"
        android:keyWidth="30%p" />
</Row>
<Row>
    <Key
        android:codes="906"
        android:horizontalGap="40%p"
        android:keyLabel="FORAGE"
        android:keyWidth="30%p" />
    <Key
        android:codes="908"
        android:keyEdgeFlags="right"
        android:keyLabel="FISH"
        android:keyWidth="30%p" />
</Row>

<Row android:keyHeight="8%p">
    <Key
        android:codes="201"
        android:horizontalGap="40%p"
        android:keyLabel="O.o"
        android:keyWidth="12%p"
        android:popupKeyboard="@xml/inv" />
    <Key
        android:codes="334"
        android:keyLabel="Undefined"
        android:keyWidth="36%p"
        android:popupKeyboard="@xml/market" />
    <Key
        android:codes="202"
        android:keyEdgeFlags="right"
        android:keyLabel="o.O"
        android:keyWidth="12%p"
        android:popupKeyboard="@xml/ginv" />


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

и моя раскладка клавиатуры: res / layout / keyboard.xml

<?xml version="1.0" encoding="UTF-8"?>
<drpg.ddkeys.ddKeysView 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:fitsSystemWindows="true"
android:keyBackground="@drawable/key_background"
android:keyPreviewLayout="@null"
android:keyTextColor="#99b3c4"
android:popupLayout="@layout/popupkeys" />

my key_backgroud drawable нормальное состояние клавиатуры https://pastebin.com/raw/hTLJ8PZu Фото клавиатуры: https://i.imgur.com/Sf6DVad.jpg где высота клавиши ADV меньше, чем у клавиш 3-го ряда, а 2-й и 3-й ряды находятся за пределами экрана.

1 Ответ

0 голосов
/ 11 сентября 2018

Я решил проблему, удалив android:horizontalGap с Keyboard level и применил к Key level. И сделал HorizontalGap в % p и скорректировал каждый размер ключа так, чтобы моя общая ширина ключа должна была получить 100% p .

<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.2%p"
      android:popupKeyboard="@xml/stats" />
    <Key
        android:codes="901"
        android:keyLabel="PET"
        android:keyWidth="19.2%p" 
        android:horizontalGap="1%p"/>
    <Key
        android:codes="903"
        android:keyLabel="HEAL"
        android:keyWidth="19.2%p"
        android:horizontalGap="1%p" />
    <Key
        android:codes="904"
        android:keyLabel="PHEAL"
        android:keyWidth="19.2%p"
        android:horizontalGap="1%p" />
    <Key
        android:codes="333"
        android:keyEdgeFlags="right"
        android:keyIcon="@drawable/key_icon"
        android:keyWidth="19.2%p"
        android:popupKeyboard="@xml/optionkey" 
        android:horizontalGap="1%p"/>
 </Row>
 </Keyboard>
...