Android EditText文本控件 - 如何禁用从Google键盘插入GIF的可能性?

问题描述 投票:7回答:2

我的应用程序的目标API是27(奥利奥)。我的应用程序使用EditText控件进行文本输入。但是,从Google键盘,现在可以插入GIF。在这种情况下,我的应用程序接收ACTION_SEND意图,从键盘插入gif,这是为完全不同的功能实现的。因此,它只会混淆整个应用流程,并使用户完全不同的活动。

我希望我的EditText只接受文本,不允许用户在那里插入任何gif。如何配置EditText以停止允许从键盘插入GIFS?

android android-intent android-edittext keyboard gif
2个回答
1
投票

对于EditText,请设置以下选项。

android:privateImeOptions="disableSticker=true;disableGifKeyboard=true"

示例:

android:layout_width="match_parent"
android:layout_height="wrap_content"              
android:privateImeOptions="disableSticker=true;disableGifKeyboard=true"/>

1
投票

测试三星galaxy S9 +三星键盘,android 9

和魅族Pro6 GBoard,android 6.作品完美

要修复GBoard,请创建您自己的编辑文本并覆盖方法“onCreateInputConnection(...)”,如下所示:

public class NoGifEditText extends AppCompatEditText {

@Override
public InputConnection onCreateInputConnection(EditorInfo editorInfo) {
    final InputConnection ic = super.onCreateInputConnection(editorInfo);
    EditorInfoCompat.setContentMimeTypes(editorInfo, new String[]{"image/*", "image/png", "image/gif", "image/jpeg"});

    return InputConnectionCompat.createWrapper(ic, editorInfo,
            (inputContentInfo, flags, opts) -> {
                Toast.makeText(getContext(), "No gif support", Toast.LENGTH_SHORT).show();
                return true;
            });
}

}

说明:输入compat句柄插入所选mimetypes(“image / *”,“image / png”,“image / gif”,“image / jpeg”)并生成事件。你在下面的块中捕获这个事件,只显示消息,不支持gif。

{
    Toast.makeText(getContext(), "No gif support", Toast.LENGTH_SHORT).show();
    return true;
}

要修复三星键盘,只需在编辑xml中添加这一行

机器人:privateImeOptions = “disableSticker = TRUE; disableGifKeyboard =真”

如您所见,禁用三星键盘上的“添加gif”按钮。 button disabled

© www.soinside.com 2019 - 2024. All rights reserved.