gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:51 25 4
gpt4 key购买 nike

我的应用程序的目标 API 是 27 (Oreo)。我的应用程序使用 EditText 控件进行文本输入。但是,现在可以从 Google 键盘插入 GIF。在这种情况下,我的应用程序接收到 ACTION_SEND Intent ,其中从键盘插入了 gif,这是为完全不同的功能而实现的。所以它只会打乱整个应用程序流程,并将用户带到完全不同的 Activity 。

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

最佳答案

在三星 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;
});
}
}

解释:输入兼容句柄插入选定的 mimetypes(“image/*”、“image/png”、“image/gif”、“image/jpeg”)并生成事件。您在下面的 block 中捕获此事件并仅显示消息,该 gif 不受支持。

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

要修复三星键盘,只需在您的编辑 XML 中添加此行

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

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

关于Android EditText 文本控件 - 如何禁用从 Google 键盘插入 GIF 的可能性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49940319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com