手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android ListView的item中嵌套ScrollView的解决办法
Android ListView的item中嵌套ScrollView的解决办法
摘要:前沿:有时候,listview的item要显示的字段比较多,考虑到显示问题,item外面不得不嵌套ScrollView来实现,于是问题来了,...

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

/** * * @author 作者:易皇星 * * @da2016年10月24日 时间: * * @toTODO 类描述: 解决 ListView中嵌套ScrollView,ScrollView拦截ListView的Item点击事件的解决办法 * * * 在listview中嵌套ScrollView,发现横滑竖滑都正常,但是无法单击Listview的Item。查询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; // 判断是横滑还是竖滑,竖滑的话拦截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的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我们留言,小编会及时回复大家的。在此也非常感谢大家对查字典教程网的支持!

【Android ListView的item中嵌套ScrollView的解决办法】相关文章:

Android动态添加View的问题解决方法

Android ListView数据绑定显示的三种解决方法

提升Android ListView性能的几个技巧

android中ListView多次刷新重复执行getView的解决方法

android ListView和GridView拖拽移位实现代码

android ListView 一些重要属性详解

android中ListView数据刷新时的同步方法

Android 中对于图片的内存优化方法

Android开发之WebView组件的使用解析

基于Android SQLite的升级详解

精品推荐
分类导航