在自定义键盘上合并弹出式字符

时间:2018-12-18 11:25:43

标签: android android-layout android-custom-keyboard

我正在使用一个自定义键盘,该键盘在不同的单词上有很多弹出字符。

例如:u->ü

要定义弹出字符,我们只需编写一个简单的属性,如下所示:

<Key android:codes="117" android:keyLabel="u" android:popupCharacters="ü" android:popupKeyboard="@xml/keyboard_popup_template"/>

我们得到一个弹出字符输出,如下所示: enter image description here

对于一次长按中的多个弹出字符,我编写了如下代码:

<Key android:codes="110" android:keyLabel="n" android:popupCharacters="ŋñ" android:popupKeyboard="@xml/keyboard_popup_template"/>

并得到如下输出:

enter image description here

这意味着 popupCharacters 属性将我们写入其中的每个字符分开。 现在的问题是我想合并两个字符以表示功效值。

例如:

所以我写如下:

<Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left" android:popupCharacters='qʷ'  android:popupKeyboard="@xml/keyboard_popup_template"/>

但是它显然分隔了弹出窗口中的两个字符。

enter image description here

如何将其用作一个字符而不分开。.

注意:我已经尝试使用unicode和转义字符,但是它不起作用。

1 个答案:

答案 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>