在ListView中嵌套EditText,EditText内容过多需要滚动的问题

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

最近在做项目,需要在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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值