前言
Android ViewPager学习笔记,本文介绍的是ViewPager2的使用方法
/app/build.gradle
1 2 3 4 5
| dependencies { ...
implementation 'androidx.viewpager2:viewpager2:1.0.0' }
|
app/src/main/res/layout/activity_main.xml
1 2 3 4 5 6 7 8 9 10 11
| <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">
<androidx.viewpager2.widget.ViewPager2 android:id="@+id/vp" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
|
创建一个模板布局
创建一个模板布局,在布局中添加各个页面都具有的控件
这里添加文本控件作为演示
app/src/main/res/layout/item_page.xml
1 2 3 4 5 6 7 8 9 10 11
| <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/rl"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>
|
创建适配器类
R.layout.item_page
:指定模板布局
app/src/main/java/…/ViewPagerAdapter.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| public class ViewPagerAdapter extends RecyclerView.Adapter<ViewPagerAdapter.ViewPagerViewHolder> {
private List<String> titles = new ArrayList<>();
public ViewPagerAdapter() { titles.add("page 1"); titles.add("page 2"); }
@NonNull @Override public ViewPagerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { return new ViewPagerViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_page, parent, false)); }
@Override public void onBindViewHolder(@NonNull ViewPagerViewHolder holder, int position) { holder.textView.setText(titles.get(position)); }
@Override public int getItemCount() { return 2; }
class ViewPagerViewHolder extends RecyclerView.ViewHolder {
RelativeLayout relativeLayout; TextView textView;
public ViewPagerViewHolder(@NonNull View itemView) { super(itemView); relativeLayout = itemView.findViewById(R.id.rl); textView = itemView.findViewById(R.id.tv); } } }
|
在MainActivity中为ViewPager配置适配器
app/src/main/java/…/MainActivity.java
1 2 3
| ViewPager2 viewPager2 = findViewById(R.id.vp); ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(); viewPager2.setAdapter(viewPagerAdapter);
|
完成
参考文献
哔哩哔哩——Android架构解析