遇到了把图表放在viewpager里的需求,发现直接把控件放进去,会出现滑动冲突的问题,直接右滑viewpager把事件抢了过去,图表就没法左右滑了,上代码
/**
* 解决图标与viewpager滑动冲突 on 2018/7/19.
*/
public class MPAndroidChartView extends CombinedChart {
PointF downPoint = new PointF();
public MPAndroidChartView(Context context) {
super(context);
}
public MPAndroidChartView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MPAndroidChartView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
getParent().requestDisallowInterceptTouchEvent(true);// 用getParent去请求,
// 不拦截
return super.dispatchTouchEvent(ev);
}
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouchEvent(MotionEvent evt) {
switch (evt.getAction()) {
case MotionEvent.ACTION_DOWN:
downPoint.x = evt.getX();
downPoint.y = evt.getY();
break;
case MotionEvent.ACTION_MOVE:
Log.i("getScrollX ", getScrollX() + "");
if (getScaleX() > 1 && Math.abs(evt.getX() - downPoint.x) > 5) {
getParent().requestDisallowInterceptTouchEvent(true);
}
break;
}
return super.onTouchEvent(evt);
}
}
图标有柱状图 线图什么的,,,所以那个冲突就继承那个 直接在xml里面使用自己写的这个类,完美解决
MPAndroidChart 图表的一些属性 https://www.cnblogs.com/wangfeng520/p/5984077.html