一.创建activity文件
1.创建一个activity名为view pagerMainActivity 文件,并生成一个activity_view pager_main.xml文件,其中activity_view pager_main.xml文件代码为
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".viewpageMainActivity">
<androidx.viewpager2.widget.ViewPager2
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/viewpage"/>
</LinearLayout>
这里我用的是view pager2,需要加载dependence
在其中dependence是中添加
implementation 'androidx.viewpager2:viewpager2:1.0.0'依赖
view pagerMainActivity代码如图所示
package cn.cachedog;
import android.annotation.SuppressLint;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager2.widget.ViewPager2;
public class viewpageMainActivity extends AppCompatActivity {
private ViewPager2 viewPager2;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_viewpage_main);
viewPager2 =findViewById(R.id.viewpage);
ViewpagerAdapter viewpagerAdapter = new ViewpagerAdapter();
viewPager2.setAdapter(viewpagerAdapter);
}
}
因为view pager需要设置adapter来设置view,所以我们需要创建一个ViewPagerAdapter,代码如图所示
package cn.cachedog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.Calendar;
import java.util.List;
import java.util.zip.Inflater;
//viewpagerAdapter是基于recyclerviewAdapter
public class ViewpagerAdapter extends RecyclerView.Adapter<ViewpagerAdapter.ViewPagerHolder> {
//这里的data是用于在viewpagerMainActivity中将多个view传过来,我这里并没有使用
//其中的泛型是自己写的的一个内部类继承于recyclerview.viewholder
private List<View> data;
@NonNull
@Override
public ViewPagerHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
//这里使用inflater来获取layout布局
return new ViewPagerHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.viewpager_item,parent,false));
}
//这里用于view的各个设置
@Override
public void onBindViewHolder(@NonNull ViewpagerAdapter.ViewPagerHolder holder, int position) {
}
/*返回值是view的个数,我这里写了2,但是我只inflater了一个view在上面的那个方法中
所以两个界面都是我所infalter的那个*/
@Override
public int getItemCount() {
return 2;
}
public class ViewPagerHolder extends RecyclerView.ViewHolder{
TextView textView;
LinearLayout linearLayout;
public ViewPagerHolder(@NonNull View itemView) {
super(itemView);
linearLayout = itemView.findViewById(R.id.container_item);
textView = itemView.findViewById(R.id.textview_item);
}
}
}
在这里view pager差不多写完了