Android(安卓)activity和fragment隐藏软键盘
16lz
2021-01-25
在Android中有的界面有Edittext输入框,一进入到该页面时,不想让软键盘显示出来,具体代码如下:
在activity中:
// 隐藏软键盘 getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
在fragment中
// 隐藏软键盘
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
Edittext 输入时 ,有时点击其他部位时,为了用户体验度,想隐藏软键盘 在activity里面比较容易实现 ,复写onTouchEvent 方法即可, 具体代码如下
@Override public boolean onTouchEvent(MotionEvent event) { InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); if(event.getAction() == MotionEvent.ACTION_DOWN){ if(getCurrentFocus()!=null && getCurrentFocus().getWindowToken()!=null){ manager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } return super.onTouchEvent(event); }
但有的时候是在fragment里面 也想要隐藏软键盘, 但fragment里面没有onTouchEvent 方法.这个时候我们可以通过 onCreateView 返回的view设置它的setOnTouchListener方法具体代码如下
//点击其他部位隐藏软键盘 view.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { InputMethodManager manager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); if(event.getAction() == MotionEvent.ACTION_DOWN){ if(getActivity().getCurrentFocus()!=null && getActivity().getCurrentFocus().getWindowToken()!=null){ manager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS); } } return false; } });
更多相关文章
- 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
- 用android 自带的包进行网络请求
- Android类似于滚动的通知栏实现
- Android性能分析工具Systrace和TraceView,性能测试GT等
- 2018年Android面试整理
- Android中双击返回键退出应用实例代码
- 实现activity全屏显示
- Android互联网访问图片并在客户端显示的方法
- Android(安卓)Emulator 2.0更新方法