我正在使用一个自定义键盘,该键盘在不同的单词上有很多弹出字符。
例如:u->ü
要定义弹出字符,我们只需编写一个简单的属性,如下所示:
<Key android:codes="117" android:keyLabel="u" android:popupCharacters="ü" android:popupKeyboard="@xml/keyboard_popup_template"/>
对于一次长按中的多个弹出字符,我编写了如下代码:
<Key android:codes="110" android:keyLabel="n" android:popupCharacters="ŋñ" android:popupKeyboard="@xml/keyboard_popup_template"/>
并得到如下输出:
这意味着 popupCharacters 属性将我们写入其中的每个字符分开。 现在的问题是我想合并两个字符以表示功效值。
例如:qʷ
所以我写如下:
<Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left" android:popupCharacters='qʷ' android:popupKeyboard="@xml/keyboard_popup_template"/>
但是它显然分隔了弹出窗口中的两个字符。
如何将其用作一个字符而不分开。.
注意:我已经尝试使用unicode和转义字符,但是它不起作用。
答案 0 :(得分:0)
我在同一个问题上苦苦挣扎,发现, 如果您将[row]包含在layout [keyboard_popup_template]本身中,它将不会合并字符,但会实现相同的目标。
您的例如->
。 。 现在, 这里不包括android:popupCharacters ='qʷ'
所以它看起来像: 。 。 并在android:popupKeyboard =“ @ xml / keyboard_popup_template”中添加标签和输出为qʷ
的行因此,@ xml / keyboard_popup_template看起来像:-
<?xml version="1.0" encoding="utf-8"?>
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="56dp"
android:codes="100"
>
<Row android:rowEdgeFlags="top" >
<Key android:keyLabel="qʷ" android:keyOutputText="qʷ"
android:keyEdgeFlags="left" />
<Key android:keyLabel=":-(" android:keyOutputText=":-( "/>
<Key android:keyLabel=";-)" android:keyOutputText=";-) "/>
<Key android:keyLabel=":-P" android:keyOutputText=":-P "/>
<Key android:keyLabel="=-O" android:keyOutputText="=-O "
android:keyEdgeFlags="right" />
</Row>
</Keyboard>