В настоящее время я работаю над приложением, для которого требуется клавиатура на другом языке (особенно на иврите).
Проблема в том, что я не знаю, с чего начать. Я не хочу, чтобы пользователю приходилось заходить в магазин приложений и устанавливать отдельное приложение с большим количеством языков, чтобы использовать мое приложение.
Я хочу, чтобы в моем приложении была доступна только клавиатура (т. Е. Она не должна влиять ни на что, кроме моего конкретного приложения). Я делаю это прямо сейчас, создавая его как часть основного макета, и просто делаю его видимым, когда пользователь нажимает кнопку «Редактировать текст».
Проблема с этим подходом заключается в том, что я не могу изменить его размер. Первоначально я пытался использовать 2 разных макета (один в папке res / layout, а другой в папке res / layout-lnd), но это вызывало различные проблемы в моем приложении, замедляя его.
Мне интересно 2 вещи, каждая из которых должна работать.
- Как мне создать раскладку для клавиатуры, чтобы перенастроить.
- Как бы я правильно сделал клавиатуру.
Вот код XML, который я использую специально для клавиатуры:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:visibility="gone"
android:background="@color/puzzle_dark"
android:id="@+id/hebrwKeyboardView"
android:layout_width="fill_parent"
android:layout_height="146dip"
android:layout_gravity="right|center_vertical|center_horizontal|bottom"
android:fitsSystemWindows="true"
android:clipChildren="false"
android:orientation="vertical" >
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="145dip"
android:clipChildren="false"
android:layout_gravity="center_vertical|center_horizontal|bottom"
android:fitsSystemWindows="true"
android:orientation="horizontal" >
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="145dip"
android:clipChildren="false"
android:layout_gravity="center_vertical|center_horizontal|bottom"
android:fitsSystemWindows="true"
android:orientation="vertical" >
<TableRow android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal|center_vertical|center"
android:fitsSystemWindows="true"
android:clipChildren="false"
android:orientation="horizontal"
android:stretchColumns="true">
<LinearLayout
android:baselineAligned="true"
android:layout_width="fill_parent"
android:layout_gravity="center"
android:layout_height="fill_parent"
android:fitsSystemWindows="true"
android:clipChildren="false"
android:orientation="horizontal">
<Button
android:id="@+id/KoofButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="@string/Koof"
android:layout_gravity="center"
android:fitsSystemWindows="true"
android:ellipsize="marquee"/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/raishButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="@string/Raish"
android:layout_gravity="center_horizontal"
android:fitsSystemWindows="true"
android:ellipsize="marquee"/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/alephButton"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="@string/Alef"
android:fitsSystemWindows="true"
android:ellipsize="marquee"/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/tetButton"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="35dip"
android:text="@string/Tet"
android:fitsSystemWindows="true"
android:ellipsize="marquee"/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/vuvButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal"
android:text="@string/Vuv"
android:fitsSystemWindows="true"
android:ellipsize="marquee"/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/nunSophitButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal"
android:text="@string/NunSofit"
android:fitsSystemWindows="true"
android:gravity="fill"
android:ellipsize="marquee"/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/memSofitButton"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="35dip"
android:text="@string/MemSofit"
android:fitsSystemWindows="true"
android:ellipsize="marquee"/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/payButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:text="@string/Pay"
android:fitsSystemWindows="true"
android:layout_gravity="center_horizontal"
android:ellipsize="marquee"/>
</LinearLayout>
</TableRow>
<TableRow android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clipChildren="true"
android:layout_gravity="center_horizontal|center_vertical|center"
android:fitsSystemWindows="true"
android:orientation="horizontal">
<RelativeLayout android:layout_width="fill_parent"
android:clipChildren="true"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal|center"
android:gravity="bottom"
android:orientation="horizontal">
<Button
android:layout_alignWithParentIfMissing="true"
android:soundEffectsEnabled="true"
android:id="@+id/shinButton"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal|center_vertical|center"
android:layout_height="35dip"
android:text="@string/Shin"
android:layout_alignParentLeft="true"
android:fitsSystemWindows="true"
/>
<Button
android:layout_centerHorizontal="true"
android:soundEffectsEnabled="true"
android:layout_toRightOf="@id/shinButton"
android:id="@+id/dalidButton"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|center_vertical|center"
android:layout_height="35dip"
android:text="@string/Dalid"
android:layout_alignWithParentIfMissing="true"
android:fitsSystemWindows="true"
/>
<Button
android:layout_alignWithParentIfMissing="true"
android:layout_centerHorizontal="true"
android:soundEffectsEnabled="true"
android:id="@+id/gimleButton"
android:layout_toRightOf="@id/dalidButton"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|center_vertical|center"
android:layout_height="35dip"
android:text="@string/Gimle"
android:fitsSystemWindows="true"
/>
<Button
android:layout_alignWithParentIfMissing="true"
android:layout_centerHorizontal="true"
android:soundEffectsEnabled="true"
android:id="@+id/chufButton"
android:layout_toRightOf="@id/gimleButton"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|center_vertical|center"
android:layout_height="35dip"
android:text="@string/Chuf"
android:fitsSystemWindows="true"
/>
<Button
android:layout_alignWithParentIfMissing="true"
android:layout_centerHorizontal="true"
android:soundEffectsEnabled="true"
android:id="@+id/ieyinButton"
android:layout_toRightOf="@id/chufButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/Ieyin"
android:fitsSystemWindows="true"
/>
<Button
android:layout_alignWithParentIfMissing="true"
android:layout_centerHorizontal="true"
android:soundEffectsEnabled="true"
android:id="@+id/yudButton"
android:layout_toRightOf="@id/ieyinButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/Yud"
android:fitsSystemWindows="true"
/>
<Button
android:layout_alignWithParentIfMissing="true"
android:layout_centerHorizontal="true"
android:soundEffectsEnabled="true"
android:id="@+id/chetButton"
android:layout_toRightOf="@id/yudButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/Chet"
android:fitsSystemWindows="true"
/>
<Button
android:layout_alignWithParentIfMissing="true"
android:layout_centerHorizontal="true"
android:soundEffectsEnabled="true"
android:id="@+id/lamidButton"
android:layout_toRightOf="@id/chetButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/Lamid"
android:fitsSystemWindows="true"
/>
<Button
android:layout_alignWithParentIfMissing="true"
android:layout_centerHorizontal="true"
android:soundEffectsEnabled="true"
android:id="@+id/chufSofitButton"
android:layout_toRightOf="@id/lamidButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/ChufSofit"
android:fitsSystemWindows="true"
/>
<Button
android:layout_alignWithParentIfMissing="true"
android:layout_centerHorizontal="true"
android:soundEffectsEnabled="true"
android:id="@+id/paySofitButton"
android:layout_toRightOf="@id/chufSofitButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/PaySofit"
android:fitsSystemWindows="true"
/>
</RelativeLayout>
</TableRow>
<TableRow android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal|center_vertical|center"
android:fitsSystemWindows="true"
android:orientation="horizontal">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal|center"
android:gravity="bottom"
android:orientation="horizontal">
<Button
android:soundEffectsEnabled="true"
android:id="@+id/zionButton"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|center_vertical|center"
android:layout_height="35dip"
android:text="@string/Zion"
android:fitsSystemWindows="true"
/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/samichButton"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|center_vertical|center"
android:layout_height="35dip"
android:text="@string/Samich"
android:fitsSystemWindows="true"
/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/betButton"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|center_vertical|center"
android:layout_height="35dip"
android:text="@string/Bet"
android:fitsSystemWindows="true"
/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/heyButton"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal|center_vertical|center"
android:layout_height="35dip"
android:text="@string/Hey"
android:fitsSystemWindows="true"
/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/nunButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/Nun"
android:fitsSystemWindows="true"
/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/memButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/Mem"
android:fitsSystemWindows="true"
/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/tzadiButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/Tzadi"
android:fitsSystemWindows="true"
/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/tuffButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/Tuff"
android:fitsSystemWindows="true"
/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/tzadiSofitButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text="@string/TzadiSofit"
android:fitsSystemWindows="true"
/>
</LinearLayout>
</TableRow>
<TableRow android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal|center_vertical|center"
android:fitsSystemWindows="true"
android:orientation="horizontal">
<LinearLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal|center"
android:gravity="bottom"
android:orientation="horizontal">
<Button
android:soundEffectsEnabled="true"
android:id="@+id/hebrewBackButton"
android:layout_width="wrap_content"
android:layout_height="35dip"
android:layout_gravity="right"
android:fitsSystemWindows="true"
android:text="<--"/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/hebrewSpaceButton"
android:layout_width="150dip"
android:layout_height="35dip"
android:layout_gravity="center_horizontal|center_vertical|center"
android:text=""
android:fitsSystemWindows="true"
/>
<Button
android:soundEffectsEnabled="true"
android:id="@+id/hebrewDoneButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:text="Done"
android:fitsSystemWindows="true"
/>
</LinearLayout>
</TableRow>
</TableLayout>
</TableLayout>
</FrameLayout>`
Вот изображение того, как оно выглядит сейчас в портретной и альбомной ориентации: