AutoScrollViewPager与PullToRefreshScrollView冲突解决

来源:互联网 发布:mac刷新dns缓存 编辑:程序博客网 时间:2024/05/01 16:07

//##############################################这一句(标记)


private void initPtrefresh(){

ptRefreshScrollView = (PullToRefreshScrollView) getActivity().findViewById(R.id.ptrsw_jiaodian_fragment);

//这几个刷新Label的设置  
String label = DateUtils.formatDateTime(getActivity().getApplicationContext(), System.currentTimeMillis(),
                DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_ALL);
ptRefreshScrollView.getLoadingLayoutProxy().setLastUpdatedLabel(label);
        ptRefreshScrollView.getLoadingLayoutProxy().setPullLabel("下拉刷新");  
        ptRefreshScrollView.getLoadingLayoutProxy().setRefreshingLabel("正在刷新");  
        ptRefreshScrollView.getLoadingLayoutProxy().setReleaseLabel("释放立即刷新");  
        ptRefreshScrollView.setOnRefreshListener(new OnRefreshListener<ScrollView>() {


@Override
public void onRefresh(PullToRefreshBase<ScrollView> refreshView) {
initData1();
initData2();
initData3();
initData4();
initData5();
initData6();
ptRefreshScrollView.onRefreshComplete();
}

});

//##############################################这一句

ptRefreshScrollView.setOnTouchListener(new OnTouchListener() {


@Override
public boolean onTouch(View v, MotionEvent event) {
vp.getParent().requestDisallowInterceptTouchEvent(false);
return false;
}
});

}




//-----------------------

private void initViewPager() {
rg = (RadioGroup) getActivity().findViewById(R.id.rg_jiaodian);
vp = (AutoScrollViewPager) getActivity().findViewById(R.id.vp_jiaodian_fragment_banner);
LayoutInflater inflater = LayoutInflater.from(getActivity());
view1 = (ImageView) inflater.inflate(R.layout.layout_1, null);
view2 = (ImageView) inflater.inflate(R.layout.layout_2, null);
view3 = (ImageView) inflater.inflate(R.layout.layout_3, null);
view4 = (ImageView) inflater.inflate(R.layout.layout_4, null);
view5 = (ImageView) inflater.inflate(R.layout.layout_5, null);
ArrayList<ImageView> views = new ArrayList<ImageView>();
views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4);
views.add(view5);

view1.setImageResource(R.drawable.banner_chuangye5);
view2.setImageResource(R.drawable.banner_jiuye5);
view3.setImageResource(R.drawable.banner_peixun1);
view4.setImageResource(R.drawable.dianshang_detail);
view5.setImageResource(R.drawable.banner_chuangye4);
adapter = new MyVpAdapter(views);
vp.setAdapter(adapter);
vp.startAutoScroll(2000);
vp.setInterval(2000);
vp.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int arg0) {
if(arg0<5){
rg.check(rg.getChildAt(arg0).getId());
}else{
rg.check(rg.getChildAt(arg0%5).getId());
}
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}

@Override
public void onPageScrollStateChanged(int arg0) {

}
});

//##############################################这一句
vp.setOnTouchListener(new View.OnTouchListener() {
private int lastX;
private int lastY;


@Override
public boolean onTouch(View v, MotionEvent event) {
vp.getParent().requestDisallowInterceptTouchEvent(true);
int x = (int) event.getRawX();
int y = (int) event.getRawY();


switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
lastX = x;
lastY = y;
break;
case MotionEvent.ACTION_MOVE:
int deltaY = y - lastY;
int deltaX = x - lastX;
if (Math.abs(deltaX) < Math.abs(deltaY)) {
vp.getParent().requestDisallowInterceptTouchEvent(false);
} else {
vp.getParent().requestDisallowInterceptTouchEvent(true);
}
default:
break;
}
return false;
}
});
}

0 0