ScrollView内嵌套EditText导致EditText无法滑动

来源:互联网 发布:学党史知国情征文 编辑:程序博客网 时间:2024/06/05 13:26

案例:

这几天做了一个界面,要求可以输入数据的,不过界面会有点长;

所以在整个界面外面添加了ScrollView;

没添加的时候,EditText还可以滑动的(就是EditText设置了最多几行,当超出的时候,会自动往上走,这时候可以手动滑动了);

添加了之后滑动的操作会被父控件截取,导致无法让EditText正常滑动;

我们要做的就是:让EditText正常获取对于EditText自己的操作即可;


解决方法:

方法很简单!只要写一个类继承EdiText,重写onTouchEvent方法,即可;

首先,我们可以肯定:在触碰EditText的时候,EditText却是获取到了事件,不过由于有父控件的存在,所以不做操作了

所以在onTouchEvent的方法中,

if(e.getAction()==MotionEvent.ACTION_DOWN){

//通知父控件不要干扰
getParent().requestDisallowInterceptTouchEvent(true);
}else if(e.getAction()==MotionEvent.ACTION_MOVE){

//通知父控件不要干扰
getParent().requestDisallowInterceptTouchEvent(true);
}else if(e.getAction()==MotionEvent.ACTION_UP){

// getParent().requestDisallowInterceptTouchEvent(true);
}
return super.onTouchEvent(e);

代码已经注释好了;

源码下载:http://download.csdn.net/detail/zhaohuofanqie/7684473(要了1积分,没啥积分了,有的就给1份吧)

无积分源码下载:http://pan.baidu.com/s/1kTHqzNT(考虑到有的人比我更穷的,给个免费地址)

(如果不能下载的请留言和留邮箱,我有空会看看)


其实有些类似的情况我们都能这样解决的!

例如:

我之前有遇到Fragment内部嵌套ViewPager导致ViewPager无法正常横向滑动,解决方法一样!


不过ScrollView内嵌套ListView有些复杂,也没做过测试,有兴趣的可以测试一下,互相分享经验,谢谢

0 0
原创粉丝点击