android - 如何在 Android 中以编程方式禁用表情符号

标签 android android-softkeyboard emoji android-viewtreeobserver

我想以编程方式从键盘隐藏表情符号和自动建议。它适用于某些 Android 设备,但不适用于所有设备。这是我隐藏自动建议的代码:

txtSingupemail.setInputType(InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS 
                           |InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
txtSignuppwd.setInputType(InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_VARIATION_PASSWORD);
txtSignuppwd.setTransformationMethod(PasswordTransformationMethod.getInstance());

这是我的 UI 的快照:

enter image description here

这是用户点击登录按钮时的布局。当用户点击左下角标记为红色的图标时,由于表情符号作为建议,键盘高度会增加。

见下图:

enter image description here

有什么方法可以通过编程方式从键盘上隐藏那些顶级表情符号吗?

最佳答案

试试这个对我有用

editText.setFilters(new InputFilter[]{new EmojiExcludeFilter()});
private class EmojiExcludeFilter implements InputFilter {

        @Override
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
            for (int i = start; i < end; i++) {
                int type = Character.getType(source.charAt(i));
                if (type == Character.SURROGATE || type == Character.OTHER_SYMBOL) {
                    return "";
                }
            }
            return null;
        }
    }

关于android - 如何在 Android 中以编程方式禁用表情符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40888902/

相关文章:

android - 我必须在 Android Studio 中为数据绑定(bind)设置 lifecycleOwner 吗?

android - 如何在 Android 上使用 ffmpeg 命令

Java使用XOR加密文件

android - 在输入时验证数字输入

java - java .jar 的表情符号 unicode 问题

python - 格式化 Unicode 的 Unicode 表示?

java - 自定义 Android 键盘 'Go' 未提交 URL 或其他内容?

Android:隐藏软输入键盘

Android 软键盘错误消息

bash - 如何在终端中显示区域状态指示器(国家标志)