android - 如何在键盘布局上的键前留一个空格?
问题描述
我在 Android 上开发了一个自定义键盘应用程序。现在,我的键盘看起来像这样:
我喜欢做的是在左边留出一些空间用于第一个键,在右边留出最后一个键。换句话说,我想将键集中在行上。它需要是这样的:
我尝试过使用不同的 android:keyWidth 设置,以及 android:horizontalGap 但它们不适用于这个特定的设计决策。
我的 keys_layout_dark_theme 文件。我有三个不同的主题,所以只有一个和另一个之间的变化是颜色,图标。
<?xml version="1.0" encoding="utf-8"?>
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="2dp"
android:verticalGap="2dp"
android:keyHeight="55dp"
android:keyTextColor="@color/colorAccent"
android:keyBackground="@drawable/key_background_dark_theme">
<Row>
<Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/>
<Key android:codes="50" android:keyLabel="2"/>
<Key android:codes="51" android:keyLabel="3"/>
<Key android:codes="52" android:keyLabel="4"/>
<Key android:codes="53" android:keyLabel="5"/>
<Key android:codes="54" android:keyLabel="6"/>
<Key android:codes="55" android:keyLabel="7"/>
<Key android:codes="56" android:keyLabel="8"/>
<Key android:codes="57" android:keyLabel="9"/>
<Key android:codes="48" android:keyLabel="0"/>
</Row>
<Row>
<Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
<Key android:codes="119" android:keyLabel="w"/>
<Key android:codes="101" android:keyLabel="e"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="é"/>
<Key android:codes="114" android:keyLabel="r"/>
<Key android:codes="116" android:keyLabel="t"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ṫ"/>
<Key android:codes="121" android:keyLabel="y"/>
<Key android:codes="117" android:keyLabel="u"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"/>
<Key android:codes="305" android:keyLabel="ı"/>
<Key android:codes="111" android:keyLabel="o"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"/>
<Key android:codes="112" android:keyLabel="p"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ṕ"/>
<Key android:codes="287" android:keyLabel="ğ"/>
<Key android:codes="252" android:keyLabel="ü"
android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="97" android:keyLabel="a"
android:keyEdgeFlags="left"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="á"/>
<Key android:codes="115" android:keyLabel="s"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="šś"/>
<Key android:codes="100" android:keyLabel="d"/>
<Key android:codes="102" android:keyLabel="f"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ḟ"/>
<Key android:codes="103" android:keyLabel="g"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ǵ"/>
<Key android:codes="104" android:keyLabel="h"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ḣ"/>
<Key android:codes="106" android:keyLabel="j"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ĵ"/>
<Key android:codes="107" android:keyLabel="k"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ḱ"/>
<Key android:codes="108" android:keyLabel="l"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ĺ"/>
<Key android:codes="351" android:keyLabel="ş"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ṩ"/>
<Key android:codes="105" android:keyLabel="i"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="İ"
android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="-1" android:keyEdgeFlags="left"
android:keyIcon="@drawable/ic_cap_letters"
android:keyWidth="15%p"/>
<Key android:codes="122" android:keyLabel="z"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ź"/>
<Key android:codes="120" android:keyLabel="x"/>
<Key android:codes="99" android:keyLabel="c"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ć"/>
<Key android:codes="118" android:keyLabel="v"/>
<Key android:codes="98" android:keyLabel="b"/>
<Key android:codes="110" android:keyLabel="n"/>
<Key android:codes="109" android:keyLabel="m"/>
<Key android:codes="246" android:keyLabel="ö"/>
<Key android:codes="231" android:keyLabel="ç"
android:popupKeyboard="@xml/popup_keyboard_dark_theme"
android:popupCharacters="ḉ"/>
<Key android:codes="-5" android:keyIcon="@drawable/ic_clear"
android:keyWidth="15%p"
android:isRepeatable="true"
android:keyEdgeFlags="right"/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="-2" android:keyWidth="15%p"
android:keyIcon="@drawable/ic_symbols"
android:keyEdgeFlags="left"/>
<Key android:codes="44" android:keyLabel="," android:keyWidth="10%p"/>
<Key android:codes="46" android:keyLabel="."/>
<Key android:codes="32" android:keyLabel="SPACE"
android:keyWidth="50%p"
android:isRepeatable="true"/>
<Key android:codes="39" android:keyLabel="'"/>
<Key android:codes="-4" android:keyBackground="@color/colorPrimary"
android:keyIcon="@drawable/ic_success"
android:keyWidth="15%p"
android:keyEdgeFlags="right"/>
</Row>
</Keyboard>
解决方案
您应该在rows或keysandroid:verticalGap
中添加andandroid:horizontalGap
属性。
它或多或少看起来像这样:
<Row android:verticalGap="1%p"
android:horizontalGap="0.5%p">
在创建自定义键盘布局时,还有一些属性可以帮助您。看看这个问题。
如果您只想要一侧的边距,请结合edgeFlags
和gap
属性:
<Key android:keyEdgeFlags="left" gap="1%p"/>
否则,如果您不想使用它,还有两种解决方法:第一个选项是为图像中带有空格的键添加自定义可绘制对象,第二个选项是添加一个空键并设置android:horizontalGap
空白键的边距大小。
推荐阅读
- python - python如何绑定control+shift+0(零)
- reactjs - 使用电子锻造打包时如何预编译打字稿
- excel - 如何在excel中通过数据验证获取最后一行?
- php - 使用尊重验证进行密码验证
- saml-2.0 - 在 SAML 中处理多个 SP 元数据生成器
- powershell - 为什么我不能在 PowerShell 中多次读取 KeyPress?
- symfony - 在树枝中显示多维数组
- c++ - GCC 8.1.0/MinGW64 编译的 OpenMP 程序崩溃寻找 cygwin.s?
- python - 从 pandas 中最近出现的 n 个条件中滚动 m
- excel - 动态列中最常见的文本