您的位置:首页 > 其它

ViewPager在最后一页滑动之后,跳转到主页面

2016-10-18 21:39 483 查看

实现的思路

1.查找控件

//查找控件
private void findView() {
vp_guide = (ViewPager) findViewById(R.id.vp_guide);
}


2.初始化ViewPager的数据

//初始化ViewPager数据
private void initData() {
mImageViews = new ArrayList<>();
for (int i = 0; i < imageIds.length; i++) {
ImageView mImageView = new ImageView(this);
mImageView.setBackgroundResource(imageIds[i]);
mImageViews.add(mImageView);
}
}


3.自定义ViewPager的适配器

//自定义适配器
class GuideAdapter extends PagerAdapter {
@Override
public int getCount() {
return mImageViews.size();
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView mImageView = mImageViews.get(position);
container.addView(mImageView);
return mImageView;
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}

}


4.设置适配器及监听

//设置适配器
private void setAdapter() {
vp_guide.setAdapter(new GuideAdapter());
vp_guide.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

}

@Override
public void onPageSelected(int position) {
currentItem=position;
}

@Override
public void onPageScrollStateChanged(int state) {

}
});

vp_guide.setOnTouchListener(new View.OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
startX = event.getX();
startY = event.getY();
break;
case MotionEvent.ACTION_UP:
endX = event.getX();
endY = event.getY();
WindowManager windowNanager = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
//获取屏幕宽度
Point mPoint = new Point();
windowNanager.getDefaultDisplay().getSize(mPoint);
int width = mPoint.x;
//首先要确定的是,是否到了最后一页,然后判断是否向左滑动,并且滑动距离是否符合你所设定的要求
if (currentItem == (mImageViews.size() - 1) && startX - endX >= (width / 6)) {
goToMainActivity();
//页面跳转的动画
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_in_left);
}
default:
break;
}
return false;
}
});
}


5.跳转到主页面的方法

//进入主界面
private void goToMainActivity() {

Intent mIntent = new Intent(this, MainActivity.class);
startActivity(mIntent);
finish();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  viewpager