有没有办法限制 Android 软键盘只允许表情符号字符?
Posted
技术标签:
【中文标题】有没有办法限制 Android 软键盘只允许表情符号字符?【英文标题】:Is there a way to restrict the Android soft keyboard to allow ONLY emoji characters? 【发布时间】:2020-10-30 15:19:33 【问题描述】:我有一个只能是单个表情符号字符的 EditText。我添加了代码和过滤器来确保这一点,但我仍然有一个可用性问题,因为键盘以正常文本模式弹出。对用户来说,只允许使用 Emoji 字符并不明显。
<EditText
android:id="@+id/activity_emoji"
style="@style/Material.Widget.EditText.Light"
android:layout_
android:layout_
android:textColor="#FF000000"
android:text="????"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true" />
理想情况下,我可以禁用除表情符号之外的所有输入,但这似乎是不可能的。另一种选择是让键盘已经在表情符号页面上弹出,而不是在普通字母表上。是否有可能做到这一点,如果可以,怎么做?
在我看来,简单的解决方案将支持:
android:inputType="Emoji"
【问题讨论】:
【参考方案1】:我添加了代码和过滤器来确保这一点
由于输入法编辑器不需要提供表情符号,所以你有一个小问题。
我仍然有一个可用性问题,因为键盘在正常文本模式下弹出
许多输入法编辑器只有有你认为的普通文本模式。
请理解,Android 设备型号超过 26,000 种。这些附带数十个(如果不是数百个)预装键盘。用户还可以从 Play 商店、F-Droid 和其他地方安装其他软件。没有人必须提供表情符号。我预计这样做的人相对较少,尽管这样做的那些(如 GBoard)将是最广泛使用的。
另外,请注意,并非所有 Android 设备都使用软键盘。有时,这是一个相当永久的状态(例如,Chromebook)。有时,它是一种临时状态(蓝牙键盘已启用、USB 键盘已插入、其他辅助设备已连接)。
有没有可能,如果可以,怎么做?
不,抱歉。
【讨论】:
似乎简单的解决方案是一个简单的添加:android:inputType="Emoji"。无论如何,如果我只能在该字段中允许表情符号字符,那么我如何测试我所使用的设备是否有表情符号?在这种情况下,我至少可以禁用该字段。 @Bungles:“似乎简单的解决方案是一个简单的添加:android:inputType="Emoji"。” ——改变世界上所有软键盘的实现似乎不符合“简单”的条件。 “我如何测试我使用的设备是否有表情符号?” ——询问用户。无法询问系统当前选择的输入法编辑器是否支持表情符号(或手势或 GIF 或几乎任何东西)。或者,build the emoji support into your app.以上是关于有没有办法限制 Android 软键盘只允许表情符号字符?的主要内容,如果未能解决你的问题,请参考以下文章