Android - ViewPager2
文章目录
- 1. 效果
- 1. 添加ViewPager2控件
- 2. MainActivity.java中添加ViewPager2
- 3. 创建ViewPager中的页面
- 4. 添加ViewPagerAdapter类代码
- 5. 示例代码
- 6. 参考
1. 效果
1. 添加ViewPager2控件
在activity_main.xml中添加 androidx.viewpager2.widget.ViewPager2
控件, 有些版本可能提示无此控件,需要在 build.gradle
中添加依赖:implementation 'androidx.viewpager2:viewpager2:1.0.0'
添加ViewPager2控件后,activity_main.xml
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><androidx.viewpager2.widget.ViewPager2android:id="@+id/viewpager"android:layout_width="match_parent"android:layout_height="match_parent"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>
2. MainActivity.java中添加ViewPager2
public class MainActivity extends AppCompatActivity {private ViewPager2 mViewPager;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mViewPager = findViewById(R.id.viewpager);List<String> dataList = new ArrayList<>();dataList.add("你");dataList.add("好");dataList.add("啊");dataList.add("你");dataList.add("是");dataList.add("谁");dataList.add("啊");mViewPager.setAdapter(new ViewPagerAdapter(dataList));}
}
写mViewPager.setAdapter(new ViewPagerAdapter(dataList));
这行代码时,先写下来,然后用 alt + enter
快捷键提示添加 ViewPagerAdapter
类。
创建完 ViewPagerAdapter
类后,先放着,创建ViewPager中的页面
3. 创建ViewPager中的页面
在 Layout 右键,new -> Layout Resource File,创建一个xml,名字随意
item_pager.xml
里面的代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/itme_container"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_vertical"android:orientation="vertical"><TextViewandroid:id="@+id/item_tv"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center"android:textSize="30sp" /></LinearLayout>
4. 添加ViewPagerAdapter类代码
public class ViewPagerAdapter extends RecyclerView.Adapter<ViewPagerAdapter.ViewPagerHolder> {private List<String> mDataList;private List<Integer> mItemColorList;public ViewPagerAdapter(List<String> data){mDataList = data;mItemColorList = new ArrayList<>();mItemColorList.add(Color.parseColor("#feeeed"));mItemColorList.add(Color.parseColor("#fedcbd"));mItemColorList.add(Color.parseColor("#817936"));mItemColorList.add(Color.parseColor("#b2d235"));mItemColorList.add(Color.parseColor("#64492b"));mItemColorList.add(Color.parseColor("#817936"));mItemColorList.add(Color.parseColor("#fffffb"));}@NonNull@Overridepublic ViewPagerAdapter.ViewPagerHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {return new ViewPagerHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_pager, parent, false));}@Overridepublic void onBindViewHolder(@NonNull ViewPagerHolder holder, int position) {holder.mItemTv.setText(mDataList.get(position));holder.mItemContainer.setBackgroundColor(mItemColorList.get(position));}@Overridepublic int getItemCount() {return mDataList.size();}class ViewPagerHolder extends RecyclerView.ViewHolder{LinearLayout mItemContainer;TextView mItemTv;public ViewPagerHolder(@NonNull View itemView) {super(itemView);mItemContainer = itemView.findViewById(R.id.itme_container);mItemTv = itemView.findViewById(R.id.item_tv);}}
}
说明:
5. 示例代码
ViewPager2示例代码
6. 参考
更多详细ViewPager2的例子,可以参考Android官方示例:Android ViewPager2 官方示例
Android - ViewPager2相关推荐
- Android - ViewPager2 Fragment
文章目录 1. 效果 2. 添加ViewPager2控件 3. 添加Fragment页面 4. 添加FragmentStateAdapter类的继承类 5. 添加ViewPager2的逻辑 6. 示例 ...
- Android ViewPager2 真的香么?
Google 前段时间出了新品 ViewPager2,据说意在替代旧版 ViewPager,功能更强大使用更方便:真的这么香么,小菜尝试学习一下! 优势 支持 RTL 布局,稍后介绍: 支持垂直方向切 ...
- Android viewpager2 + indicator 实现页面滑动
在build.gradle里面添加依赖 implementation 'com.tbuonomo:dotsindicator:4.2'implementation 'androidx.viewpage ...
- Android ViewPager2自定义页面切换动画
默认切换动画 MainActivity override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstance ...
- Android viewpager2实现翻页效果
为什么要实现翻页效果?减少用户的操作 viewpager2是基于recyclerview实现的,自带懒加载功能 viewpager2是对recyclerview的封装 要实现下面这个效果 viewpa ...
- android viewpager2,viewpager2原理和使用
近期google官网上更新了viewpager2, 支持垂直滚动, 重写之前的viewpager. 1.原理: viewpager2 内部实现原理是使用recycleview加LinearLayout ...
- Android viewPager2 + fragment 模拟微信首页2(滑动页面标签同步变化,点击标签滑动页面)
可以实现的方式:BottomNavigationView 这里我们不使用BottomNavigationView,手动来写代码 先看一下效果 fragment + viewPager2模拟微信首页2( ...
- android viewpager2,Android-ViewPager2的使用
一.ViewPager2的变化 ViewPager2是用来替换ViewPager的,ViewPager2是final修饰的,直接继承ViewGroup,其内部是使用RecyclerView,ViewP ...
- Android ViewPager2总结
文章目录 ViewPager2总结 概述 常用API ViewPager2基本使用 ViewPager2+TabLayout+Fragment 代码下载 ViewPager2总结 概述 ViewPag ...
最新文章
- 【分享】工作流支持邮件提醒相关配置
- java list翻转_浅谈Java数据结构中的常见问题
- 面向对象课程第二单元作业总结
- 在Python中访问字典中的任意元素
- windows远程桌面连接提示发生身份验证错误,要求的函数不受支持
- javascript中的setTimeout() 方法和clearInterval() 方法和setInterval() 方法
- Android 集成支付宝支付,支付宝支付2.0
- 处理页面动态加载数据
- 程序员进阶之路的10本必读书目
- 基于Matpower的电力系统潮流计算仿真
- java poi excel转pdf_java_poi导入导出excel.pdf
- 如何将 Ubuntu 配置为Ap模式
- 你在为谁工作——IT帮深圳分站2019年3月线下活动回顾
- java 环绕通知_SpringAOP四种通知类型+环绕通知
- php静态页面制作,ps制作静态的html页面
- SecureCRT 多个会话显示在同一窗口
- SSTV 建伍TK8185 连接电脑
- 微信进化史(未完待续)
- python学习笔记3.5-with的妙用
- Wireshark 4.0.0RC1 版本前瞻
热门文章
- 提效利器,定时器软件,小巧、绿色、免费~
- Could not create token :Using integers for registered date claims is deprecated, please use DateTime
- 三、HBase原理与实战
- 使用Beetle简单构建高性能Socket tpc应用
- 华为智能家居鸿蒙,美的集团首发支持华为鸿蒙 年内推出配套智能家居
- css怎么移动半圆,css3半圆
- linux桌面字体改中文,英文界面Ubuntu,修改界面默认雅黑字体
- 重磅发布,时隔两月——复旦大学MOSS最新0.0.3版本发布
- 股票购买接口系统怎么使用vn.py进行量化策略?
- 初步尝试将传统学科的内容程序/数据化 2018-10-27