Android ListView的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之ScrollView嵌套ListView和GridView冲突的解决方法
- Android笔记之:在ScrollView中嵌套ListView的方法
- Android编程之截屏实现方法(包括scrollview与listview)
- Android ScrollView嵌套ExpandableListView显示不正常的问题的解决办法
- Android 中ScrollView嵌套GridView,ListView的实例
- Android ListView与ScrollView冲突的解决方法总结
- Android ScrollView 下嵌套 ListView 或 GridView出现问题解决办法
- Android 中ScrollView与ListView冲突问题的解决办法
- Android开发实现ScrollView中嵌套两个ListView的方法
相关文章
android UI进阶之android中隐藏的layout 抽屉的使用方法
android UI进阶之android中隐藏的layout 抽屉的使用方法,需要的朋友可以参考一下2013-05-05Android开发中Activity的生命周期及加载模式详解
这篇文章主要介绍了Android开发中Activity的生命周期及加载模式详解的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下2016-05-05Android SwipeRefreshLayout下拉刷新源码解析
这篇文章主要为大家详细解析了Android SwipeRefreshLayout下拉刷新源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-11-11android xml实现按钮的圆角、阴影效果及按下变化效果的实现代码
这篇文章主要介绍了android xml实现按钮的圆角、阴影效果以及按下变化效果,通过五个xml文件实现按钮的圆角阴影效果,代码也很简单,需要的朋友可以参考下2021-05-05实例讲解Android中的View类以及自定义View控件的方法
这篇文章主要介绍了Android中的View类以及自定义View控件的方法,讲解了如何继承View类并且展示了一个对View进行重绘的例子,需要的朋友可以参考下2016-04-04
最新评论