输入法导致ExpandableListView的getChildView重绘
来源:互联网 发布:淘宝商城女童鞋 编辑:程序博客网 时间:2024/06/06 11:36
今天写代码的时候遇到个问题,ExpandableListView的分组展开后,里面有edittext,当edittext获取焦点弹起输入法的时候
edittext又失去了焦点,需要重新点击才能做输入,并且在内容修改后收起输入法的时候,edittext的内容再次回到默认值
当时的想法就是,getChildView重绘了,于是debug,发现果然是是
检查代码后发现是因为输入法弹起的时候,整个页面都被顶起来了,而ExpandableListView的高度是match_parent的,父view被压缩,导致了ExpandableListView的高度改变,引发重绘
于是把ExpandableListView的高度设为固定值解决了问题,但是这次弹出输入法的时候ExpandableListView没有被顶起来,输入框被软键盘遮盖
于是把ExpandableListView放到了ScrollView里面,这样输入法弹出的时候,输入框就会一直在输入法上面了
另外,避免输入法覆盖界面输入框的方式有以下三种:
方法一:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
方法二:在项目的AndroidManifest.xml文件中界面对应的<activity>里加入android:windowSoftInputMode="stateVisible|adjustResize",这样会让屏幕整体上移。如果加上的是
android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。
方法三:把顶级的layout替换成ScrollView,或者说在顶级的Layout上面再加一层ScrollView的封装。这样就会把软键盘和输入框一起滚动了,软键盘会一直处于底部。
- 输入法导致ExpandableListView的getChildView重绘
- 切换输入法导致程序死机的解决办法
- 切换输入法导致程序死机的解决办法
- UITableViewCell的重绘机制导致的列状态问题
- UITableViewCell的重绘机制导致的列状态问题
- UITableViewCell的重绘机制导致的列状态问题
- UITableViewCell的重绘机制导致的列状态问题
- UITableViewCell的重绘机制导致的列状态问题
- 由重绘导致闪屏的解决办法
- iOS解决UITableView重绘导致重叠的问题
- 重绘机制 导致绘制的控件重叠
- 重绘导致的edittext丢失焦点问题
- Activity透明主题导致behind Activity重绘的解决方法
- 导致flash屏幕重绘的几种方式及避免重绘的方法
- 导致flash屏幕重绘的几种方式及避免重绘的方法
- 导致flash屏幕重绘的几种方式及避免重绘的方法
- 当expandlistview的getGroupView或者getChildView中包含checkbox时,前者点击不可用
- 紫光输入法导致系统故障
- Node 实现一个MVC相册资源管理器
- Java 序列化Serializable详解
- Python SqlAlchemy动态添加数据表字段
- JVM内存管理与垃圾回收机制
- 一、Matlab 之 初探
- 输入法导致ExpandableListView的getChildView重绘
- html标签中的<meta charset="utf-8">是什么鬼?
- 可用的key for EE4PSP2
- 跟廖雪峰学Git 一 —— 初始配置
- input type="submit" 和"button"有什么区别?
- 前端常见跨域解决方案(全
- 大写字母转小写字母
- HDU 2159 FATE(二维费用背包)
- String 转 List