最近在做项目,需要在ListView中点击item展开一个固定高度的EditText,不能编辑,如果内容过多就需要滚动.但是发现EditText的滚动跟ListView的滚动冲突了
在这里我参考了这个文章: http://blog.csdn.net/goodlixueyong/article/details/41172465
原理是当点到EditText上的时候,就让EditText获取焦点,屏蔽Listview的滚动,当手指离开EditText的时候,恢复ListView的滚动.但是这会有个问题,影响了用户体验,就是如果内容不多的时候,EditText还是那么高,点在上面的时候,就无法让ListView滚动的.所以这里我就给每个EditText加上一个判断内容高度的处理.如果内容过高,EditText可滚动的时候,就按上去就滚动EditText,如果内容不多或者按在EditText外面的时候,就滚动ListView.
以下是关键代码:
ViewTreeObserver vto = holder.et_comment.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
holder.et_comment.getViewTreeObserver().removeGlobalOnLayoutListene

本文介绍了在ListView中嵌套EditText时,如何处理因内容过多导致的滚动冲突。通过监听EditText的触摸事件,当内容过多时允许EditText滚动,否则允许ListView滚动。同时提醒注意在某些机型上可能影响长按复制粘贴功能。

6212

被折叠的 条评论
为什么被折叠?



