700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Android viewpager2实现翻页效果

Android viewpager2实现翻页效果

时间:2024-02-16 22:47:52

相关推荐

Android viewpager2实现翻页效果

为什么要实现翻页效果?减少用户的操作

viewpager2是基于recyclerview实现的,自带懒加载功能

viewpager2是对recyclerview的封装

要实现下面这个效果

viewpager2翻页效果

一 步骤

1 这次我们用viewPager2,导入依赖

implementation 'androidx.viewpager2:viewpager2:1.0.0'

2 xml里写viewpager2的标签

3 写一个item_layout(就是翻页的内容)

4 Main.java:

viewPager.setAdapter(viewPagerAdapter)

5 创建ViewPagerAdapter类(解析翻页layout用的)

实现方法

定义1个内部类(写属性:item_layout里面定义的标签)

ViewPagerAdapter类写List属性装不同的翻页,写构造方法

改造...

二 代码

1 这次我们用viewPager2,导入依赖

implementation 'androidx.viewpager2:viewpager2:1.0.0'

2 xml里写viewpager2的标签

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/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"/>/></LinearLayout>

3 写一个item_layout(就是翻页的内容)

item_layout.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="/apk/res/android"android:id="@+id/container"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/title"android:text="Hi 兄弟"android:layout_centerInParent="true"android:textSize="50sp"android:layout_width="wrap_content"android:layout_height="wrap_content"/></RelativeLayout>

4 Main.java设置adapter

MainActivity.java

package com.example.myviewpagerfragment;import androidx.appcompat.app.AppCompatActivity;import androidx.recyclerview.widget.RecyclerView;import androidx.viewpager2.widget.ViewPager2;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ViewPager2 viewPager = findViewById(R.id.viewPager);ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter();//viewPager设置适配器viewPager.setAdapter(viewPagerAdapter);}}

5 创建ViewPagerAdapter类(解析翻页layout用的)

package com.example.myviewpagerfragment;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("兄弟");titles.add("吃饭了吗");titles.add("游戏好玩么");titles.add("妹子好看吗");titles.add("学java了吗");titles.add("锻炼身体了吗");titles.add("今天喝可乐了吗");colors.add(R.color.yellow);colors.add(R.color.warm);colors.add(R.color.lightblue);colors.add(R.color.colorAccent);colors.add(R.color.pink);colors.add(R.color.light);colors.add(R.color.cool);}@NonNull@Overridepublic ViewPagerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {return new ViewPagerViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_layout,parent,false));}//数据绑定@Overridepublic void onBindViewHolder(@NonNull ViewPagerViewHolder holder, int position) {//把ArrayList里的内容放到翻页的TextView里holder.mTv.setText(titles.get(position));//把ArrayList里的背景颜色 设置到翻页里holder.mContainer.setBackgroundResource(colors.get(position));}//返回的数字就是有几个翻页@Overridepublic int getItemCount() {return titles.size();}class ViewPagerViewHolder extends RecyclerView.ViewHolder{TextView mTv;RelativeLayout mContainer;public ViewPagerViewHolder(@NonNull View itemView) {super(itemView);mContainer = itemView.findViewById(R.id.container);mTv = itemView.findViewById(R.id.title);}}}

这里有好看的颜色

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。