2

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

例如: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属性分隔了我们在其中写入的每个字符。现在的问题是我想合并两个字符来表示功率值。

例如:

所以我写如下:

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

但它显然将弹出窗口中的两个字符分开。

在此处输入图像描述

我怎样才能将它用作一个字符而不将它分开..??

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

4

1 回答 1

0

我在同样的问题上苦苦挣扎并发现,如果你在布局 [keyboard_popup_template] 本身中包含 [row],它不会合并字符但会实现相同的目标....让 c 如何

你的例子->

. . 现在,这里不包括 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>
于 2020-03-30T20:07:55.453 回答