您的位置 首页 > 腾讯云社区

【安卓基础】ViewPager2的入门使用---用户3702315

0.简单的前言

之前的项目中使用过ViewPager,被坑过几次。如果你在RecyclerView中的Item使用ViewPager,你绝对会产生莫名其妙的问题,因为ViewPager在同一界面上不能有两个一样的ID,否则会导致滑动和内存问题。

1.最简单的使用

ViewPager2是内部使用了RecyclerView,最简单用法就是设置一个Adapter即可马上使用,下面的ViewPager2默认是横向滚动:

ViewPager2 uiVisitorPager2 = mRootView.findViewById(R.id.uiVisitorPager2); uiVisitorPager2.setAdapter(new RecyclerView.Adapter() { @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View item = View.inflate(parent.getContext(), R.layout.face_item_domicile, null); ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); item.setLayoutParams(lp); RecyclerView.ViewHolder vh = new RecyclerView.ViewHolder(item){}; return vh; } @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { } @Override public int getItemCount() { return 10; } });

注意到上面的手动设置LayoutParams,否则会抛出:

java.lang.IllegalStateException: Pages must fill the whole ViewPager2 (use match_parent)

2.垂直滚动的特性

ViewPager2支持横向和垂直滚动,只需要在xml中通过android:orientation指定方向:

<androidx.viewpager.widget.ViewPager android:id="@+id/uiVisitorPager" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="1dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/uiTopTitle">3.ViewPager2.PageTransformer

ViewPager2同样支持与ViewPager已有的PageTransformer,而且使用方式完全一致,所以很方便的可以复用以前的PageTransformer。

ViewPager2.PageTransformer定义在ViewPager2的内部,是一个接口,接口的方法与ViewPager的PageTransformer一模一样。

public abstract void transformPage(View page, float position) ---来自腾讯云社区的---用户3702315

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: