Nek*_*nto 14 android android-edittext
我的目标是在某些事件上显示/隐藏屏幕上的软件键盘并拦截来自该键盘的输入.
我发现可以为某些View类后代显示软键盘,但我不需要在屏幕上显示文本编辑小部件的任何可视化表示,只需要通过输入拦截以编程方式显示/隐藏软键盘.
实现这一目标的最佳方法是什么?
bri*_*tzl 18
即使这个问题在大约一年前被问到,它也没有一个被接受且完全有帮助的答案,因为我自己遇到了同样的问题,但我会分享我的解决方案:
正如Vikram指出的那样,这是显示软输入的方式:
InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.showSoftInput(myView, InputMethodManager.SHOW_FORCED);
Run Code Online (Sandbox Code Playgroud)
但您还必须将视图设置为可聚焦且可在触摸模式下聚焦:
myView.setFocusable(true);
myView.setFocusableInTouchMode(true);
Run Code Online (Sandbox Code Playgroud)
或者在您的视图中XML:
android:focusable = "true"
android:focusableInTouchMode = "true"
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令强制显示软键盘:
InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.showSoftInput(myView, InputMethodManager.SHOW_FORCED);
Run Code Online (Sandbox Code Playgroud)
并隐藏:
((InputMethodManager) YourActivity.this.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(findViewById(R.id.YOUR_VIEW).getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7841 次 |
| 最近记录: |