Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android ListView的item中嵌套ScrollView的解决办法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

 前沿:有时候,listview 的item要显示的字段比较多,虑到显示问题,item外面不得不嵌套ScrollView来实现,于是问题来了,当listview需要做点击事件时,由于ScrollView的嵌套使用,拦截了listvew点击事件:只好重写listview来实现了。@H_301_1@

/**
* 
* @author 作者:易皇星
* 
* @da2016年10月24日 时间:
* 
* @toTODO 类描述: 解决 ListView中嵌套ScrollView,ScrollView拦截ListView的Item点击事件的解决办法
* 
* 
* 在listview中嵌套ScrollView,发现横滑竖滑都正常,但是无法单击Listview的Item。@L_696_8@Android分发机制后解决,继承Listview重写Listview的onInterceptTouchEvent。
* 
* onInterceptTouchEvent中总是调用listview的onTouchEvent保证listview的事件都执行,
* super.onInterceptTouchEvent(ev)不会拦截需要传递给ScrollView的横滑。
*/
public class MyListView extends ListView {
privatE int flag = 0;
private float StartX;
private float StartY;
public MyListView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyListView(Context context,AttributeSet attrs,int defStylE) {
super(context,attrs,defStylE);
// TODO Auto-generated constructor stub
}
public MyListView(Context context,AttributeSet attrs) {
super(context,attrs);
// TODO Auto-generated constructor stub
}
@Override
public Boolean onInterceptTouchEvent(MotionEvent ev) {
// 总是调用listview的touch事件处理
onTouchEvent(ev);
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
StartX = ev.getX();
StartY = ev.getY();
return false;
}
if (ev.getAction() == MotionEvent.ACTION_MOVE) {
float ScollX = ev.getX() - StartX;
float ScollY = ev.getY() - StartY;
// 判断是横滑还是竖滑,竖滑的话@L_657_3@move事件和up事件(不拦截会由于listview和scrollview同时执行滑动卡顿)
if (Math.abs(ScollX) < Math.abs(ScollY)) {
flag = 1;
return true;
}
return false;
}
if (ev.getAction() == MotionEvent.ACTION_Up) {
if (flag == 1) {
return true;
}
return false;
}
return super.onInterceptTouchEvent(ev);
}
}

以上所述是小编给大家介绍的Android ListView的item中嵌套ScrollView的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!@H_301_1@

大佬总结

以上是大佬教程为你收集整理的Android ListView的item中嵌套ScrollView的解决办法全部内容,希望文章能够帮你解决Android ListView的item中嵌套ScrollView的解决办法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:listview