您的位置:首页 > 其它

ScrollView中嵌套ViewFlow滑动卡顿解决办法

2016-12-26 16:13 288 查看
现在很多app中都有banner图片,单纯的使用ViewFolow自定义控件时可能不会出现卡顿,由于项目需要我也开发了一个banner,是在fragment中使用
未修改之前布局文件是这样滴



用到的原声的 ScrollView,下面嵌套了自定义的ViewFlow,这个自定义的VIewFloow控件网上有很多,这里就不bb了
然后这样滑动时时候有些卡顿,不是很流畅,找了很久才发现原因,原来需要从新自定义

[java] view
plain copy

 print?

ScrollView ,复写<span style="font-family: Arial, Helvetica, sans-serif;">onInterceptTouchEvent方法,</span>  

[java] view
plain copy

 print?

package cn.miandanhui.widget;  

  

import android.content.Context;  

import android.util.AttributeSet;  

import android.view.MotionEvent;  

import android.widget.ScrollView;  

  

public class MyScrollView extends ScrollView {  

    private float xDistance, yDistance, xLast, yLast;  

  

    public MyScrollView(Context context) {  

        super(context);  

    }  

  

    public MyScrollView(Context context, AttributeSet attrs) {  

        super(context, attrs);  

    }  

  

    public MyScrollView(Context context, AttributeSet attrs, int defStyle) {  

        super(context, attrs, defStyle);  

    }  

  

    @Override  

    public boolean onInterceptTouchEvent(MotionEvent ev) {  

        switch (ev.getAction()) {  

        case MotionEvent.ACTION_DOWN:  

            xDistance = yDistance = 0f;  

            xLast = ev.getX();  

            yLast = ev.getY();  

            break;  

        case MotionEvent.ACTION_MOVE:  

            final float curX = ev.getX();  

            final float curY = ev.getY();  

  

            xDistance += Math.abs(curX - xLast);  

            yDistance += Math.abs(curY - yLast);  

            xLast = curX;  

            yLast = curY;  

  

            if (xDistance > yDistance) {  

                return false;  

            }  

        }  

        return super.onInterceptTouchEvent(ev);  

    }  

}  

然后修改布局文件



这样修改一下,重新运行了一下,发现流畅多了,我的这种修改方案是在ScrollView里面嵌套ViewFollow哟,不要搞错啦

下面我把那个自定义ViewFlow的代码给大家,希望帮助开发的朋友们,下面是下载链接 http://download.csdn.net/detail/shaozucheng/9169269
对了这个控件可以结合ImageLoader使用加载网络图片,不一定定死的图片,至于使用ImageLoade加载网络图片相信网上有很多例子
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐