我有一个应用程序,我需要创建一个自定义键盘,因为条形码扫描仪被分类为硬件键盘和硬件键盘禁用软键盘。问题是,当没有扫描器连接时,内置的软键盘将在不需要时显示。我有一个按钮来显示自定义键盘,这也将隐藏默认键盘使用
((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 )。
发布于 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;
发布于 2017-02-11 19:35:27
EditText提供此功能,将EditText中的标志textIsSelectable设置为true。这样,光标仍然存在,您可以选择/复制/剪切/粘贴,但是SoftKeyboard永远不会显示。需要API 11和更高版本。
可以在xml布局中设置它,如下所示:
<EditText
...
android:textIsSelectable="true"/>或者以编程的方式,如:
EditText editText = (EditText) findViewById(R.id.editText);
editText.setTextIsSelectable(true);对于任何使用API 10及以下版本的用户,在这里提供了hack:https://stackoverflow.com/a/20173020/7550472
https://stackoverflow.com/questions/24129342
复制相似问题