MPAndroidChart在ViewPager+Fragment滑动冲突解决
2016-12-27 15:19
633 查看
本文出自:http://blog.csdn.net/dt235201314/article/details/53894944
MPAndroidChart常见设置属性(一)——应用层
MPAndroidChart项目实战(一)——实现对比性柱状图
MPAndroidChart项目实战(二)——双平滑曲线(双折线图)和MarkView实现
MPAndroidChart项目实战(三)——饼状图实现和文字重合问题解决
MPAndroidChart项目实战(四)——柱状图实现及X轴文字不显示问题和柱状图上显示文字
一丶慨述
这个问题在禅道上本来是交给我处理,拖了一天没解决,转交给做给的同事了,做折中处理(滑动MPChart时禁止外部滑动)
二丶直接上代码
方法一:
这里页面上下滑动用的都是ScrollView
代码思路:scaleX和scaleY是图标是否放大(1f为正常),左右滑动MpChart时关闭fragment左右滑动,执行MpChart的,上下滑动时则关闭MpChart的打开ScrollView的
最后监听里调用方法:
到达效果:MPchart能左右滑动时,fragment不滑动
方法二:
使用改装集成后的LintChart
MPAndroidChart常见设置属性(一)——应用层
MPAndroidChart项目实战(一)——实现对比性柱状图
MPAndroidChart项目实战(二)——双平滑曲线(双折线图)和MarkView实现
MPAndroidChart项目实战(三)——饼状图实现和文字重合问题解决
MPAndroidChart项目实战(四)——柱状图实现及X轴文字不显示问题和柱状图上显示文字
一丶慨述
这个问题在禅道上本来是交给我处理,拖了一天没解决,转交给做给的同事了,做折中处理(滑动MPChart时禁止外部滑动)
二丶直接上代码
方法一:
/** * 设置左右滑动 * * @param barChart */ public static void setChartScaleX(LineChart barChart) { if (barChart != null) { float scaleX = barChart.getScaleX(); if (scaleX <= 1.0f) { //可以左右滑动 ChartAllFragment.setViewPageScrollEnable(true); } else { ChartAllFragment.setViewPageScrollEnable(false); } } else { ChartAllFragment.setViewPageScrollEnable(true); } } /** * 设置上下滑动 * * @param scrollView * @param lineChart */ public static void setScrollViewScrolling(ScrollView scrollView, LineChart lineChart) { if (lineChart != null) { float scaleY = lineChart.getScaleY(); if (scaleY <= 1.0f) { //可以左右滑动 if (scrollView != null) scrollView.setEnabled(true); } else { if (scrollView != null) scrollView.setEnabled(false); } } else { if (scrollView != null) scrollView.setEnabled(true); } }
这里页面上下滑动用的都是ScrollView
代码思路:scaleX和scaleY是图标是否放大(1f为正常),左右滑动MpChart时关闭fragment左右滑动,执行MpChart的,上下滑动时则关闭MpChart的打开ScrollView的
最后监听里调用方法:
linechart.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { boolean isScaled = linechart.getScaleX() != 1.0 && linechart.getScaleY() != 1.0; if (event.getAction() == MotionEvent.ACTION_DOWN) { setChartScaleX(linechart); setScrollViewScrolling(scrollView, linechart); linechart.getParent().requestDisallowInterceptTouchEvent(isScaled); return false; } else if (event.getAction() == MotionEvent.ACTION_MOVE) { return false; } else if (event.getAction() == MotionEvent.ACTION_UP) { ChartAllFragment.setViewPageScrollEnable(true); scrollView.setEnabled(true); return false; } else { return false; } } });
到达效果:MPchart能左右滑动时,fragment不滑动
方法二:
使用改装集成后的LintChart
public class LineChartInViewPager extends LineChart { PointF downPoint = new PointF(); public LineChartInViewPager(Context context) { super(context); } public LineChartInViewPager(Context context, AttributeSet attrs) { super(context, attrs); } public LineChartInViewPager(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @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: LogUtils.i("getScrollX ", getScrollX() + "" ); if (getScaleX() > 1 && Math.abs(evt.getX() - downPoint.x) > 5) { getParent().requestDisallowInterceptTouchEvent(true); } break; } return super.onTouchEvent(evt); } }
相关文章推荐
- MPAndroidChart与ViewPager的滑动冲突处理
- viewpager中的fragment放置了MPAndroidChart,滑动受阻
- Android解决ViewPager嵌套Fragment,Fragment嵌套ViewPager滑动冲突
- Android ViewPager嵌套ViewPager滑动冲突的解决方法
- Android中SwipeRefreshLayout和ViewPager左右滑动冲突的原因以及正确的解决方法
- Android中给Listview的HeadView加ViewPager自动轮播图,解决滑动冲突
- Android中解决ListView嵌套Viewpager时,滑动事件冲突的方法
- Android嵌套滑动控件的冲突解决和ViewPager适配当前子控件高度不留空白的办法
- Android:SwipeRefreshLayout和ViewPager滑动冲突的原因和正确的解决方式
- Android嵌套滑动控件的冲突解决和ViewPager适配当前子控件高度不留空白的办法
- Android:SwipeRefreshLayout和ViewPager滑动冲突的原因和正确的解决方式
- Android listview viewpager解决冲突 滑动
- android 布局 使用 viewPager 时,如何解决 和 子页面 长按滑动 冲突问题
- android scrollView 内嵌ViewPager或Gallery等水平滑动控件冲突问题解决实现同时滑动
- 复制AItsuki的Android:SwipeRefreshLayout和ViewPager滑动冲突的原因和正确的解决方式
- Android listview viewpager解决冲突 滑动
- Android ViewPager嵌套ViewPager滑动冲突的解决方法
- android 解决fragment+viewpager+fragment滑动卡顿的问题
- 备忘-Android ViewPager 与Gallery滑动冲突解决方法
- Android 中 DrawerLayout + ViewPager 怎么解决滑动冲突?