首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android,只显示自定义键盘。

Android,只显示自定义键盘。
EN

Stack Overflow用户
提问于 2014-06-09 21:25:30
回答 2查看 1.3K关注 0票数 4

我有一个应用程序,我需要创建一个自定义键盘,因为条形码扫描仪被分类为硬件键盘和硬件键盘禁用软键盘。问题是,当没有扫描器连接时,内置的软键盘将在不需要时显示。我有一个按钮来显示自定义键盘,这也将隐藏默认键盘使用

代码语言:javascript
运行
复制
((InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(advText.getWindowToken(), 0);

(advText是EditText的扩展版本)

我尝试过将这一行代码放在EditText的EditText方法中,但什么也没有发生。如果我使用setInputType(InputType.TYPE_NULL);,安卓键盘永远不会显示,但EditText不会显示光标或自定义键盘上键入的任何内容(但我知道键被存储,因为我的“完成”键将EditText的文本发送到其他地方。)

我可以完全禁用这个应用程序的安卓键盘,只要EditTexts显示光标和自定义键盘只有在使用按钮时才会显示。

我看过这些答案,但没有找到解决办法。

Close/hide the Android Soft Keyboard

How to show soft-keyboard when edittext is focused

How to hide Android soft keyboard on EditText

编辑:

我目前的解决方案是在EditText的onCheckIsTextEditor中运行hide方法,因为这似乎是在onFocusChanged之后运行的,而且它似乎每秒钟都会被调用。但这是一个讨厌的黑客,因为键盘仍然显示了一秒,并移动我的布局来回。我目前的测试设备包括摩托罗拉光子Q 4G LTE ( 4.1.2 )和霍尼韦尔海豚70e黑色( 4.0.3 )。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-09 21:35:10

<activity>中编辑AndroidManifest.xml标记并添加以下属性:android:windowSoftInputMode="stateAlwaysHidden" (参见http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft )

只是添加了这一点,并删除所有其他奇怪的事情,你正在做的隐藏软键盘。

您还可以在运行时启用和禁用此功能。getWindow().getAttributes().softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN;

票数 -1
EN

Stack Overflow用户

发布于 2017-02-11 19:35:27

EditText提供此功能,将EditText中的标志textIsSelectable设置为true。这样,光标仍然存在,您可以选择/复制/剪切/粘贴,但是SoftKeyboard永远不会显示。需要API 11和更高版本。

可以在xml布局中设置它,如下所示:

代码语言:javascript
运行
复制
<EditText
    ...
    android:textIsSelectable="true"/>

或者以编程的方式,如:

代码语言:javascript
运行
复制
EditText editText = (EditText) findViewById(R.id.editText);
editText.setTextIsSelectable(true);

对于任何使用API 10及以下版本的用户,在这里提供了hack:https://stackoverflow.com/a/20173020/7550472

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24129342

复制
相关文章

相似问题

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