Android(安卓)View获取焦点
16lz
2021-01-24
做项目的时候遇到一个bug,在一个Activity中打开DrawerLayout,这样就会遇到一个问题,在Activity中的EditText的焦点还在,这样根据项目中的代码逻辑数据就会同步不过来,这样展示就会有问题,所以打算总结一下。
Android新启动Activity,dialog或者其他窗体中中包含EditText, 新启动的activity的焦点默认在EditText上,这是android系统会弹出软键盘,挤压activity本来的界面,影响美观。
因此最好在新窗体创建时,最好在onCreate()方法中将焦点放在另一个view上. view使用requestFocus()焦点,但是如果让button或者textView之类控件直接使用requestFocus()方法,则无法获取焦点,焦点会依然在editText上。
只能在使用View的requestFocus()方法之前调用下面2个方法,view才可获取焦点:
view.setFocusable(true);
view.setFocusableInTouchMode(true);
然后调用 requestFocus(),requestFocusFromTouch()即可获取焦点。
项目中的操作
这个是项目中的本来的逻辑 项目中的抽屉回调最后解决方法
在抽屉滑动的时候让抽屉获得焦点,这样原Activity的焦点消失,更新List的Data,然后抽屉里面在取最新的ListData,达到更新的目的。。。。
更多相关文章
- Android(安卓)项目规范
- android 控件颜色随焦点变化实例
- Android(安卓)发布开源项目到jcenter
- android recycleView局部刷新的选择
- Validates using resource IDs in a switch statement in Androi
- 从eclipse中导出项目到android studio。
- Android(安卓)Gradle 看这一篇就够了
- Android(安卓)Studio Wear Demo
- Android项目中打jar包 和 使用