效果图
准备工作:
设置每页要显示一个Textview
在mainactivity里
// 查找布局中的ViewPager2控件,并将其赋值给vp变量
ViewPager2 vp = findViewById(R.id.viewPage1);
// 创建一个ViewPagerAdapter对象,用于提供ViewPager2的页面内容
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter();
// 将ViewPagerAdapter设置为ViewPager2的适配器,以便它能够管理ViewPager2的页面
vp.setAdapter(viewPagerAdapter);
在activity_main.xml里
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/main"
tools:context=".MainActivity">
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPage1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00FF00">
</androidx.viewpager2.widget.ViewPager2>
在ViewPageAdapter里
package com.example.viewpageee;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
public class ViewPagerAdapter extends RecyclerView.Adapter<ViewPagerAdapter.ViewPagerViewHolder> {
// 存储标题的列表
private List<String> titles = new ArrayList<>();
// 存储颜色的列表
private List<Integer> colors = new ArrayList<>();
// 构造函数,初始化标题和颜色列表
public ViewPagerAdapter(){
// 添加示例标题
titles.add("hello");
titles.add("hello1");
titles.add("hello2");
titles.add("hello3");
titles.add("hello4");
titles.add("hello5");
titles.add("hello6");
titles.add("hello7");
titles.add("hello8");
titles.add("hello9");
// 添加示例颜色
colors.add(R.color.colorPrimary);
colors.add(R.color.colorAccent);
colors.add(R.color.red);
colors.add(R.color.black);
colors.add(R.color.red);
colors.add(R.color.colorAccent);
colors.add(R.color.colorPrimary);
colors.add(R.color.colorAccent);
colors.add(R.color.red);
colors.add(R.color.colorPrimary);
}
// 创建新的视图持有者
@NonNull
@Override
public ViewPagerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
// 创建视图持有者对象,绑定到item_pager布局
return new ViewPagerViewHolder(LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_pager,parent,false));
}
// 绑定数据到视图持有者
@Override
public void onBindViewHolder(@NonNull ViewPagerViewHolder holder, int position) {
// 设置TextView的文本为相应位置的标题
holder.mtv.setText(titles.get(position));
// 设置RelativeLayout的背景颜色为相应位置的颜色
holder.mcontainer.setBackgroundResource(colors.get(position));
}
// 返回项的数量
@Override
public int getItemCount() {
return 10;
}
// 内部类,视图持有者
class ViewPagerViewHolder extends RecyclerView.ViewHolder{
// 声明TextView和RelativeLayout
TextView mtv;
RelativeLayout mcontainer;
// 构造函数,初始化视图持有者
public ViewPagerViewHolder(View itemView) {
super(itemView);
// 绑定TextView和RelativeLayout到布局中的对应控件
mtv = itemView.findViewById(R.id.textView);
mcontainer = itemView.findViewById(R.id.container);
}
}
}