ViewPager2滑动页面滑动到最后再次滑动跳转到新页面 When swipe to left at the last page, jump to new page

2023-11-13

代码如下:

package com.example.hrminiapp;

import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager2.widget.ViewPager2;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    ViewPager2 viewPager2;
    int[] layouts;
    ViewsSliderAdapter mAdapter;
    boolean isLastPageSwiped = false;
    int counterPageScroll = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        init();
    }

    public void init() {
    	//3 screen slides created
        layouts = new int[]{
                R.layout.slide_screen_1,
                R.layout.slide_screen_2,
                R.layout.slide_screen_3,
        };
        viewPager2 = (ViewPager2) findViewById(R.id.view_paper);
        mAdapter = new ViewsSliderAdapter(layouts);
        viewPager2.setAdapter(mAdapter);
        viewPager2.registerOnPageChangeCallback(pageChangeCallback);

    }

    ViewPager2.OnPageChangeCallback pageChangeCallback = new ViewPager2.OnPageChangeCallback() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            //swipe to left at the last page->jump to login page
            //when click back button on emulator, 1 swipe to left to jump again, without this line, 2 more swipes
            isLastPageSwiped = false ? true : false;
            if (position == layouts.length - 1 && !isLastPageSwiped) {
                if (counterPageScroll != 0) {
                    isLastPageSwiped = true;
                    //跳转到指定界面
                    launchLoginScreen();
                }
                counterPageScroll++;
            } else {
                isLastPageSwiped = false;
                counterPageScroll = 0;
            }
        }

    };

    //jump to login page
    private void launchLoginScreen() {
        //跳转到指定界面,代码实现
    }
}

感谢教授的帮助,通过逻辑锁解决了。在onPageScroll方法中,position代表当前第几页,从0开始整数递增。代码中一共有3个页面,所以layout.length长度为3,当position为2时表示最后一页,此时再从右向左划则跳转到launchLoginScreen指定页面。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ViewPager2滑动页面滑动到最后再次滑动跳转到新页面 When swipe to left at the last page, jump to new page 的相关文章

随机推荐

  • 大数据课程K17——Spark的协同过滤法

    文章作者邮箱 yugongshiye sina cn 地址 广东惠州 本章节目的 了解Spark的协同过滤概念 一 协同过滤概念 1 概念 协同过滤是一种借助众包智慧的途径 它利用大量已有的用户偏好来估计用户对其未接触过的物品的喜好程度 其
  • Qt开发 之 Windows资源管理器模仿 并 小超越

    文章目录 1 简述 2 优化点 2 1 内存处理 2 1 1 Windows的资源管理器 2 1 1 1 大图标模式 2 1 1 2 超大图标模式 2 1 1 3 其他模式 2 1 2 用Qt做的类似资源管理器的软件 2 2 滑动处理 2
  • geek卸载工具安装和使用

    软件描述 geek可以快速彻底将软件卸载后的垃圾程序删除干净 并且小巧无广告 无需安装 整个大小仅仅几兆 一 软件获取 1 通过网盘直接下载 https pan quark cn s 29d5661ca7de 2 官网下载 打开官网后点击d
  • Spring@Autowired注解与自动装配

    1 配置文件的方法 我们编写spring 框架的代码时候 一直遵循是这样一个规则 所有在spring中注入的bean 都建议定义成私有的域变量 并且要配套写上 get 和 set方法 Boss 拥有 Office 和 Car 类型的两个属性
  • IDER代码检查工具

    随着业务的发展 系统会越来越庞大 原本简单稳定的功能 可能在不断迭代后复杂度上升 潜在的风险也随之暴露 导致最终服务不稳定 造成业务价值的损失 而为了减少这种情况 其中一种比较好的方式就是提高代码质量 比如通过代码审查 从而降低错误风险 但
  • Qt控件米白色主题风格,QSS控件样式,Qt风格,Qt控件源代码

    米白色主题控件风格 使用c 开发 原生控件主题风格 主题预览图 由www qt ui com设计开发完成 提供主题源代码 主题下载地址 http www qt ui com theme UIGTE001 主题预览图 产品官网 www qt
  • 【QT进阶】第五章 QT绘图之自定义控件--仪表盘绘制

    作者主页 凉开水白菜 作者简介 共同学习 互相监督 热于分享 多加讨论 一起进步 专栏目录 零基础学QT 文章导航篇 专栏资料 https pan baidu com s 192A28BTIYFHmixRcQwmaHw 提取码 qtqt 点
  • 2.6 矩阵的初等变换

    文章目录 初等变换 行 列 定理 等价 性质 初等方阵 初等方阵与初等变换的关系 三种初等方阵的行列式 逆矩阵 定理 初等矩阵的作用 定理 A可逆条件总结 初等变换法求逆矩阵 初等行变换法 只做行变换 参考 初等变换 行 列 下面是三种初等
  • (5)Qt中的日期和时间

    QDate 日期对象格式化 d 没有前导零的日子 1 to 31 dd 前导为0的日子 01 to 31 ddd 显示 缩写 周一 周二 周三 周四 周五 周六 周日 dddd 显示 完整 星期一 星期二 星期三 星期四 星期五 星期六 星
  • 快速转载他人CSDN博客到自己博客中

    1 右键页面 选择审查元素 2 进入HTML代码页面 选择article content 如何快速找到article content 以谷歌浏览器为例子 鼠标右击 选择检查 点击小箭头 并把鼠标移动到文章内容中 看到baidu pl 点击下
  • 使用 JMeter 完成常用的压力测试

    JMeter 完成常用的压力测试 文档选项 将此页作为电子邮件发送 拓展 Tomcat 应用 下载 IBM 开源 J2EE 应用服务器 WAS CE 新版本 V1 1 摘自 http www 360doc com showWeb 0 0 2
  • C++基础之四个默认函数(构造,析构,拷贝构造,赋值运算符重载)

    文章目录 一 构造函数 构造函数的默认值 赋值方法 二 析构函数 三 拷贝构造函数 四 赋值运算符重载函数 一 构造函数 类的构造函数是类的一种特殊的成员函数 它会在每次创建类的新对象时执行 构造函数的名称与类的名称是完全相同的 并且不会返
  • A State-of-the-Art Survey on Deep Learning Theory and Architectures论文翻译分析

    A State of the Art Survey on Deep Learning Theory and Architectures 摘要 近年来 深度学习在各种应用领域取得了巨大成功 机器学习这一新领域发展迅速 已应用于大多数传统应用领
  • (超详细、带图带源码)Nacos注册中心的搭建与测试

    前言 本系列是从头开始进行学习Nacos的相关知识 从相关概念到业务开发等等 本篇是第三篇 主要知道为什么需要注册中心 为什么选择Nacos作为注册中心和Nacos作为注册中心的快速搭建 入门篇 阿里Nacos系列 为什么要选择Nacos和
  • 密码学技术在区块链系统中的应用

    密码学技术是区块链数据核心技术 P2P网络协议 共识机制 密码学技术 账户与存储模型 中核心的技术点 区块链主要用到的密码算法有哈希算法和加密算法 加密又包括对称性加密和非对称性加密两个概念 区块链系统里面一般常用到的是非对称加密 本文首先
  • 02-neo4j的基本命令

    1 插入节点 插入一个Person类别的节点 且这个节点有一个属性name 属性值为Andres CREATE n Person name 梁川川 CREATE n Person name 谢静静 CREATE n Person name
  • MySql数据库基础--常用函数&视图

    常用函数 日期函数 获取当前日期 select NOW 获取指定日期的日部分 select day now 获取指定日期的月部分 SELECT MONTH NOW 获取指定日期的n年部分 SELECT YEAR NOW date forma
  • Mysql锁

    文章目录 1 概述 2 分类 3 全局锁 4 表级锁 5 行级锁 1 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制 在数据库中 除传统的计算资源 CPU RAM I O 的争用以外 数据也是一种供许多用户共享的资源 如何保证数据
  • 班级学生成绩统计管理系统---(C语言简易版)

    include
  • ViewPager2滑动页面滑动到最后再次滑动跳转到新页面 When swipe to left at the last page, jump to new page

    代码如下 package com example hrminiapp import androidx appcompat app AppCompatActivity import androidx viewpager2 widget Vie