做项目的时候遇到一个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,达到更新的目的。。。。

更多相关文章

  1. Android(安卓)项目规范
  2. android 控件颜色随焦点变化实例
  3. Android(安卓)发布开源项目到jcenter
  4. android recycleView局部刷新的选择
  5. Validates using resource IDs in a switch statement in Androi
  6. 从eclipse中导出项目到android studio。
  7. Android(安卓)Gradle 看这一篇就够了
  8. Android(安卓)Studio Wear Demo
  9. Android项目中打jar包 和 使用

随机推荐

  1. Eclipse导入MyEclipse项目时,无法识别为we
  2. 网站使用云服务器有什么好处?
  3. centos 7中的文本处理工具sed命令的使用
  4. iOS 拍照录频画质问题相关
  5. shell脚本之awk工具的使用
  6. chrome查看网站字符集编码的方法(不需要安
  7. JavaScript学习之购物车全选、自动计算
  8. VSCODE,一款免费好用的源代码编辑器
  9. php学习日记——课程表
  10. 课程表 与 表单制作