首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我需要软键盘来输入TextView,但我不想让输入字段出现在屏幕上

我需要软键盘来输入TextView,但我不想让输入字段出现在屏幕上
EN

Stack Overflow用户
提问于 2018-05-31 16:19:16
回答 1查看 105关注 0票数 0

我可以在安卓系统上打开和关闭软键盘,也可以接受TextView上的文本输入。一切正常。问题是,我不想真正看到占据整个屏幕的键盘上方的文本输入字段。我已经将TextView的输入类型设置为InputType.TYPE_NULL,这将隐藏文本字段并仅显示键盘,但当我这样做时,它不接受来自键盘的输入:

代码语言:javascript
复制
 //doesn't show text field above soft
 //keyboard, but also doesn't take input
 tview.setInputType(InputType.TYPE_NULL);

我似乎想不出如何禁用文本字段。我只想要键盘,因为我需要在用户键入时在UI中显示内容,而不需要覆盖整个屏幕的文本输入框。

更新:原来我可以将软键盘上的按键输入直接发送到非TextView.View。换句话说,可以将软键盘输入发送到的任何子类,而不需要专门处理文本或文本编辑。这个答案解释了这一点:https://stackoverflow.com/a/7386854/420163

我修改了onCreateInputConnection (它是View类的一部分)来完成以下操作:

代码语言:javascript
复制
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
    //Log.d(TAG, "onCreateInputConnection");
    BaseInputConnection b = new BaseInputConnection(this, false);
    outAttrs.actionLabel = null;
    outAttrs.inputType = InputType.TYPE_NULL;
    outAttrs.imeOptions = EditorInfo.IME_FLAG_FORCE_ASCII|EditorInfo.IME_FLAG_NO_FULLSCREEN|EditorInfo.IME_FLAG_NO_EXTRACT_UI;
    return b;
}

EditorInfo.IME_FLAG_NO_FULLSCREEN|EditorInfo.IME_FLAG_NO_EXTRACT_UI标志隐藏了与软键盘一起显示的文本编辑框,使其不会覆盖屏幕。主视图现在使用公共布尔值事件( view v,int keyCode,KeyEvent onKey)从软键盘接收按键事件。

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 18:11:20

尝尝这个。

代码语言:javascript
复制
tview.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
tview.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50619761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档