java - ListView中的EditText在输入到行末自动换行的时候总是失去焦点
PHPz
PHPz 2017-04-18 10:31:30
[Java讨论组]

Situation:
LiveView中的Item都是一个自定义的View,其中有一个EditText控件用于输入文字。现在输入的过程中一旦到了一行的末尾自动换行的时候,焦点就失去了,要重新点击该EditText控件才可以继续输入。

为什么会这样,是因为listview重新绘制了嘛?怎么解决。。

PHPz
PHPz

学习是最好的投资!

全部回复(2)
高洛峰

listview重绘了,整个过程重绘了三次,点击edittext软键盘弹出导致listview压缩,这是第一次;edittext内容过多换行导致edittext高度变化进一步导致item高度变化,得重绘,这是第二次;重绘会导致edittext失去焦点,软键盘隐藏,listview展开,进行第三次重绘。那么,是否解决思路也就知道了呢?既然是失去焦点引起,那么就再获取焦点了,记录上次操作的edittext,在adapter的getView方法里判断一下,是这个edittext的话就requestFocus一下。

怪我咯

ListView滚动促使其重新LayoutChildren, 最后导致EditText失去输入焦点.
由于EditText在ListView会有不适应的这个症状, 建议还是换RecyclerView吧...

p.s.应用市场里少有应用会这么设计: ListView中放一个EditText...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号