java - ListView中的EditText在输入到行末自动换行的时候总是失去焦点

 凹凸妖精铺子 发布于 2022-10-26 04:06

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

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

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

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

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

    2022-11-12 01:41 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有