use*_*216 8 keyboard android gif android-intent android-edittext
我的应用程序的目标API是27(奥利奥).我的应用程序使用EditText控件进行文本输入.但是,从Google键盘,现在可以插入GIF.在这种情况下,我的应用程序接收ACTION_SEND意图,从键盘插入gif,这是为完全不同的功能实现的.因此,它只会混淆整个应用流程,并使用户完全不同的活动.
我希望我的EditText只接受文本,不允许用户在那里插入任何gif.如何配置EditText以停止允许从键盘插入GIFS?
小智 5
在三星 Galaxy S9+(三星键盘)、安卓 9 和魅族 Pro6 GBoard、安卓 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;
});
}
}
Run Code Online (Sandbox Code Playgroud)
说明: 输入兼容句柄插入选定的 mimetypes(“image/*”、“image/png”、“image/gif”、“image/jpeg”)并生成事件。您在下面的块中捕获此事件并仅显示消息,该 gif 不受支持。
{
Toast.makeText(getContext(), "No gif support", Toast.LENGTH_SHORT).show();
return true;
}
Run Code Online (Sandbox Code Playgroud)
要修复三星键盘,只需在编辑 XML 中添加此行
android:privateImeOptions="disableSticker=true;disableGifKeyboard=true"
如您所见,三星键盘上的“添加 gif”按钮被禁用。

小智 3
对于 EditText 设置以下选项。
android:privateImeOptions="disableSticker=true;disableGifKeyboard=true"
Run Code Online (Sandbox Code Playgroud)
例子 :
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:privateImeOptions="disableSticker=true;disableGifKeyboard=true"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
708 次 |
| 最近记录: |