android中showSoftInput不起作用
16lz
2022-01-28
有的时候需要在界面一显示时就让输入框处于焦点状态,并且需要键盘弹出,方便用户输入。需要以下代码
在xml文件中editText设置两个属性
android:focusable="true"android:focusableInTouchMode="true"
显示键盘
InputMethodManager manager = (InputMethodManager) getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE);manager.showSoftInput(edittext, 0);
解决办法
edittext.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { InputMethodManager manager = (InputMethodManager) getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE); manager.showSoftInput(edittext, 0); }});
在该段代码中去监听edittext是否被绘制完毕,如果绘制完毕则调用onGlobalLayoutListener.onGlobalLayout函数,在该函数中去显示键盘,运行下,就发现键盘可以正常弹出啦。哈哈,完美
隐藏键盘:
如何隐藏一个Activity页面上的键盘:
private static void hideSoftInput(Activity actv){ if(actv.getCurrentFocus()!=null && actv.getCurrentFocus().getWindowToken()!=null) { InputMethodManager manager = (InputMethodManager) actv.getSystemService(Context.INPUT_METHOD_SERVICE); manager.hideSoftInputFromWindow(actv.getCurrentFocus().getWindowToken(), 0); } }
更多相关文章
- android camera(三):camera V4L2 FIMC
- android工具之TraceView学习笔记
- Android(安卓)深入理解 View 的绘制流程和机制
- 【Android】View绘制过程分析之draw
- android 键盘关闭/显示
- android 隐藏键盘 显示键盘
- Android线程间通信的Message机制
- 深入了解Android图形管道-part2
- 箭头函数的基础使用