iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >最详细的主界面ViewPager2 使用详解
  • 213
分享到

最详细的主界面ViewPager2 使用详解

android 2023-09-13 20:09:35 213人浏览 八月长安
摘要

目录 最简单的水平翻页 1.主布局 2.对ViewPager进行定制,创建一个类和布局 3.适配器 a. b. c. d. e. 4.主函数 最简单的垂直翻页 a. b. 学习ViewPager2之前,建议先学习使用RecycleVie

目录

最简单的水平翻页

1.主布局

2.对ViewPager进行定制,创建一个类和布局

3.适配器

a.

b.

c.

d.

e.

4.主函数

最简单的垂直翻页

a.

b.


学习ViewPager2之前,建议先学习使用RecycleView

ViewPager2属于新增的配件,且底层是用RecycleViews实现的,需要在项目的中添加相应的依赖.

implementation 'Androidx.recyclerview:recyclerview:1.2.1'implementation 'androidx.viewpager2:viewpager2:1.0.0'

最简单的水平翻页

1.主布局

        

2.对ViewPager进行定制,创建一个类和布局

package com.example.view_pager2;public class ViewPager {    private String name;    private int image;    public ViewPager(String name, int image) {        this.name = name;        this.image = image;    }    public String getName() {        return name;    }    public int getImage() {        return image;    }}
        

3.适配器

package com.example.view_pager2;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import androidx.annotation.NonNull;import androidx.recyclerview.widget.RecyclerView;import java.util.List;public class HorizontalVpAdapter extends RecyclerView.Adapter {    private List viewpagerList;    public HorizontalVpAdapter(List viewpagerList) {        this.viewpagerList = viewpagerList;    }    @NonNull    @Override    public HorizontalVpAdapter.HorizontalVpViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.viewpager_item,parent,false);        return new HorizontalVpViewHolder(view);    }    @Override    public void onBindViewHolder(@NonNull HorizontalVpAdapter.HorizontalVpViewHolder holder, int position) {        ViewPager viewpager = viewpagerList.get(position);        holder.mImage.setImageResource(viewpager.getImage());        holder.mText.setText(viewpager.getName());    }    @Override    public int getItemCount() {        return viewpagerList.size();    }    class HorizontalVpViewHolder extends RecyclerView.ViewHolder {        ImageView mImage;        TextView mText;        HorizontalVpViewHolder(@NonNull View itemView) {            super(itemView);            mImage = itemView.findViewById(R.id.image);            mText = itemView.findViewById(R.id.text);        }    }}

在这里,顺便我们把RecycleView复习一下

a.

首先我们创建了一个HorizontalVpViewHolder内部类,继承RecycleView.ViewHolder.然后我们在构造函数中传入了一个View,这个就是每个页面的最外层布局了

b.

接着我们创建一个HorizontalVpAdapter的构造函数,这个用来把要使用的数据都传进来,我们后续的操作都是围绕这个数据进行的

c.

onCreateViewHolder()这个方法是用来创建一个ViewHolder实例的,我们在这个方法中将布局加载进来,传入到构造函数中,最后在返回这个实例.

d.

onBindViewHolder()这个方式就是对每个子项的数据进行赋值,在每个子项被滚入到屏幕的时候进行执行,这里我们可以通过position参数达到当前的实例.然后再将数据设置就可以了

e.

getItemCount()就是告诉ViewPager有多少个子项就可以了,返回链表的长度

4.主函数

package com.example.view_pager2;import androidx.appcompat.app.AppCompatActivity;import androidx.viewpager2.widget.ViewPager2;import android.os.Bundle;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private List viewPagerList = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initData();        ViewPager2 viewPager2 = findViewById(R.id.view_pager);        HorizontalVpAdapter horizontalVpAdapter = new HorizontalVpAdapter(viewPagerList);        viewPager2.setAdapter(horizontalVpAdapter);    }    private void initData(){        for (int i = 0; i < 2; i++){            ViewPager viewPager1 = new ViewPager("123", R.drawable.cloudy);            viewPagerList.add(viewPager1);            ViewPager viewPager2 = new ViewPager("456", R.drawable.moon);            viewPagerList.add(viewPager2);            ViewPager viewPager3 = new ViewPager("789", R.drawable.sunny);            viewPagerList.add(viewPager3);        }    }}

最简单的垂直翻页

变成垂直的翻页只需要两步

a.

给主布局中的ViewPager中加入,使他的布局变成垂直的即可

android:orientation="vertical"

b.

给活动中添加

viewPager2.setOrientation(ViewPager2.ORIENTATION_VERTICAL);
@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initData();        ViewPager2 viewPager2 = findViewById(R.id.view_pager);        HorizontalVpAdapter horizontalVpAdapter = new HorizontalVpAdapter(viewPagerList);        viewPager2.setAdapter(horizontalVpAdapter);        viewPager2.setOrientation(ViewPager2.ORIENTATION_VERTICAL);    }

 

来源地址:https://blog.csdn.net/qq_65337539/article/details/127409971

--结束END--

本文标题: 最详细的主界面ViewPager2 使用详解

本文链接: https://www.lsjlt.com/news/406339.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 最详细的主界面ViewPager2 使用详解
    目录 最简单的水平翻页 1.主布局 2.对ViewPager进行定制,创建一个类和布局 3.适配器 a. b. c. d. e. 4.主函数 最简单的垂直翻页 a. b. 学习ViewPager2之前,建议先学习使用RecycleVie...
    99+
    2023-09-13
    android
  • TabLayout+ViewPager2的简单使用详解
    本文实例为大家分享了TabLayout+ViewPager2简单使用的实现代码,供大家参考,具体内容如下 学习之前我们先看一下显示的效果 这里显示的底部导航栏,如果想实现的顶部导航...
    99+
    2024-04-02
  • 使用BCGControlBar界面库美化MFC界面的详细过程
    要使用BCGControlBar界面库美化MFC界面,需按照以下详细过程进行操作:1. 下载和安装BCGControlBar界面库:...
    99+
    2023-09-20
    MFC
  • 史上最详细的一线大厂Mysql面试题详解
    MySQL的复制原理以及流程基本原理流程,3个线程以及之间的关联;主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;从:io线程——在使用start slave 之后,负责从master上拉取 b...
    99+
    2023-06-05
  • java内部类的最详细详解
    目录1、成员内部类2、静态内部类3、方法内部类4、匿名内部类总结1、成员内部类 内部类与外部类的关系 a.成员内部类的创建需要依赖于外部类对象-(成员方法必须通过对象调用),在没有...
    99+
    2024-04-02
  • playwright最详细使用教程
    推荐阅读按照自己需要的顺序,不需要从头开始。 简单介绍 playwright是一款新型的自动化测试工具,功能非常强大,使用下来有很多的优点 👍 : 支持异步。内置浏览器驱动。支持移动...
    99+
    2023-09-05
    python 测试工具 爬虫
  • iOS界面布局简化UIStackView使用详解
    目录前言UIStackView布局思想distribution:alignment:UIStackView用法初始化添加、删除子视图排列方向布局方式对齐方式间距前言 在过去iOS页面...
    99+
    2024-04-02
  • 基于Python的GUI图形用户界面编程详细讲解
    目录前言    常用的GUI库1.Tkinter2.wxPython3.PyQT基于tkinter模块创建GUI程序步骤主窗口设置主窗口位置和大小GUI...
    99+
    2022-12-29
    python的图形界面gui编程 python开发gui界面 Python gui界面
  • Flutter——最详细(CustomScrollView)使用教程
    CustomScrollView简介 创建一个 [ScrollView],该视图使用薄片创建自定义滚动效果。 [SliverList],这是一个显示线性子项列表的银子列表。 [SliverFixe...
    99+
    2023-10-24
    flutter
  • Flutter——最详细(TextField)使用教程
    TextField简介 文本输入框,拥有复杂的属性。可指定控制器、文字样式、装饰线、行数限制、游标样式等。监听输入框变动事件。 使用场景: 搜索框,输入账号密码等 属性 作...
    99+
    2023-09-07
    flutter
  • Flutter——最详细(NavigationRail)使用教程
    NavigationRail 简介 一个 Material Design 小部件,旨在显示在应用程序的左侧或右侧,以便在少量视图(通常在三到五个视图之间)之间导航。 使用场景: 通过Row属...
    99+
    2023-09-12
    flutter
  • 详解Android ViewPager2中的缓存和复用机制
    目录1. 前言 2. 回顾RecyclerView缓存机制 3. offscreenPageLimit原理 4. FragmentStateAdapter原理以及缓存机制 4.1 简...
    99+
    2024-04-02
  • Android resource linking failed (全网最详细,最全面的解决方案)
    这个错误我可能已经遇到N次了。通常情况下,这个错误非常的棘手,因为根本不知道是什么原因导致的。在这个错误上面浪费了非常多的时间,所以我的目标是彻底消灭这个错误,遇到这个错误的时候能够快速解决。下面的解...
    99+
    2023-09-24
    android
  • JWT全面解读和详细使用步骤
    目录前言JWT的数据结构HeaderPayloadSignatureBase64URLJWT的实现Maven依赖JWT签名发布和验证代码拦截器配置无需认证的请求Token统一拦截器代...
    99+
    2024-04-02
  • Java全面详细讲解逻辑控制的使用
    目录一,块作用域二,顺序结构三,分支结构switch语句问题(重点)四,循环4.1,易错点4.2,break语句4.3,continue语句五,输入输出5.1,输出到控制台5.2,从...
    99+
    2024-04-02
  • log4j使用详细解析
    简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地、日志信息的输出格式Log4j 除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。...
    99+
    2023-05-31
    log4j 用法
  • Android如何使用viewPager2实现UI界面翻页滚动的效果
    小编给大家分享一下Android如何使用viewPager2实现UI界面翻页滚动的效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.先在build.gradl...
    99+
    2023-06-15
  • PyAutoGUI图形用户界面自动化的超详细教程
    目录开始之前查看屏幕大小获取当前鼠标的位置检查指定坐标是否在屏幕上设置暂停时间鼠标功能移动鼠标鼠标点击鼠标拖动鼠标滚动屏幕功能截屏功能定位功能消息框功能alert()函数confir...
    99+
    2024-04-02
  • pytest框架之fixture详细使用详解
    本人之前写了一套基于unnitest框架的UI自动化框架,但是发现了pytest框架之后觉得unnitest太low,现在重头开始学pytest框架,一边学习一边记录,和大家分享,话...
    99+
    2024-04-02
  • Win10怎么清除主页界面最近使用的文件让界面更简洁些
      主页是Win10系统中新引入的一个文件管理器界面,用来使显示最近使用的文件和经常访问的文件,可以说是一个非常快捷的方式,但如果使用久了,你就会发现界面快捷文件会很多很乱,也会暴露隐私,这时候最好的方法就是清除主页界面...
    99+
    2023-06-10
    Win10 主页 最近使用 文件 界面
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作