您的位置:首页 > 其它

解决viewpager嵌套viewpager和其他view 冲突问题

2013-07-09 14:51 405 查看
这个网址必须收藏,解决viewpager嵌套viewpager和其他view    冲突问题       

        分类:           
android2013-07-09 14:51378人阅读评论(2)收藏举报

http://www.apkbus.com/android-101849-1-1.html     viewpager嵌套viewpager【主viewpager的子项里面包含一个viewpager和其他的view】    这样滑动肯定会冲突,必须冲突,纠结了1个星期,头疼了一个星期,终于成功了!!!感谢啊

我们只需要重写子viewpager  就可以很好的解决这个问题了

/**

* ChanpinViewPager.java

* com.stg.ln.utils.ui

*

* Function: TODO

*

*   ver     date      author

* ──────────────────────────────────

*   2013-7-9 zhangyanhong

*

* Copyright (c) 2013, TNT All Rights Reserved.

*/

package com.stg.ln.utils.ui;

import android.content.Context;

import android.support.v4.view.ViewPager;

import android.util.AttributeSet;

import android.view.MotionEvent;

public class ChildViewPager extends ViewPager {

public ChildViewPager(Context context, AttributeSet attrs) {

super(context, attrs);
// TODO Auto-generated constructor stub

}
public static ViewPager mPager;//此处我直接在调用的时候静态赋值过来 的

    private int abc = 1;

    private float mLastMotionX;

    String TAG="@";

   

    private float firstDownX;

    private float firstDownY;

    private boolean flag=false;

   

    public boolean dispatchTouchEvent(MotionEvent ev) {

            // TODO Auto-generated method stub       

            final float x = ev.getX();

            switch (ev.getAction()) {

            case MotionEvent.ACTION_DOWN:

                    mPager.requestDisallowInterceptTouchEvent(true);

                    abc=1;

                    mLastMotionX=x;

                    break;

            case MotionEvent.ACTION_MOVE:

                    if (abc == 1) {

                            if (x - mLastMotionX > 5 && getCurrentItem() == 0) {

                                    abc = 0;

                                    mPager.requestDisallowInterceptTouchEvent(false);

                            }

                            if (x - mLastMotionX < -5 && getCurrentItem()  == getAdapter().getCount()-1) {

                                    abc = 0;

                                    mPager.requestDisallowInterceptTouchEvent(false);

                            }

                    }

                    break;

            case MotionEvent.ACTION_UP:

            case MotionEvent.ACTION_CANCEL:

                    mPager.requestDisallowInterceptTouchEvent(false);

                    break;

            }

            return super.dispatchTouchEvent(ev);

    }

    @Override

    public boolean onInterceptTouchEvent(MotionEvent ev) {

            // TODO Auto-generated method stub

            return super.onInterceptTouchEvent(ev);

    }

    @Override

    public boolean onTouchEvent(MotionEvent event) {

            // TODO Auto-generated method stub

            return super.onTouchEvent(event);

    }

}

再次感谢安卓巴士的某楼主!






开心呀、、、
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐