ViewPager 滑动页面滑倒最后一页再滑进行跳转

引用别人链接:ViewPager2滑动页面滑动到最后再次滑动跳转到新页面 When swipe to left at the last page, jump to new page_viewpager2 翻到最后一页 再加载新的页面-CSDN博客

我觉得可以再简便一点:

public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";
    private ConstraintLayout main;
    private ViewPager viewpager;

    private ArrayList<View> alist;
    boolean islastpageswipd = false;
    private ArrayList<String> titlelist;
    int counterPageScroll = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
        initView();
        alist = new ArrayList<View>();
        titlelist = new ArrayList<String>();
        titlelist.add("View1");
        titlelist.add("View2");
        titlelist.add("View3");

        alist.add(getLayoutInflater().inflate(R.layout.view_one, null));
        alist.add(getLayoutInflater().inflate(R.layout.view_two, null));
        alist.add(getLayoutInflater().inflate(R.layout.view_three, null));
        MyPagerAdapter myPagerAdapter = new MyPagerAdapter(alist,titlelist);

        viewpager.setAdapter(myPagerAdapter);
        viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override//滑动监听
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
//                islastpageswipd = false?true:false;
//
//                if (position == alist.size()- 1 && !islastpageswipd ){
//
//                    if ( counterPageScroll != 0) {
//                        islastpageswipd = true;
//
//                        startActivity(new Intent()
//                                .setClass(MainActivity.this, HomeActivity.class));
//                    }
//
//                    counterPageScroll++;
//
//                }else {
//                    islastpageswipd = false;
//                    counterPageScroll = 0;
//                }

                if (position == alist.size()- 1){
                    if (counterPageScroll != 0)
                        startActivity(new Intent().setClass(MainActivity.this, HomeActivity.class));
                    counterPageScroll++;
                }else {
                    counterPageScroll= 0;
                }



            }

            @Override//选中监听
            public void onPageSelected(int position) {
                Log.i(TAG, "onPageSelected: -------------"+position);
            }

            @Override//状态监听
            public void onPageScrollStateChanged(int state) {

            }
        });
        // 设置适配器

    }

    private void initView() {
        viewpager = (ViewPager) findViewById(R.id.viewpager);
    }
}
int counterPageScroll = 0;
viewpager.setAdapter(myPagerAdapter);
viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override//滑动监听
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
if (position == alist.size()- 1){
    if (counterPageScroll != 0)
        startActivity(new Intent().setClass(MainActivity.this, HomeActivity.class));
    counterPageScroll++;
}else {
    counterPageScroll= 0;
}
}

也就是

1.int 一个变量 = 0 ;

2.然后判断滑动下标是否是最后一页;

3.判断int的变量什么时候不等于0的时候进行跳转

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值