在ViewPager2中使用PagerTabStrip,可以通过以下步骤实现:
implementation 'androidx.viewpager2:viewpager2:1.0.0'
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.tabs.PagerTabStrip
android:id="@+id/pagerTabStrip"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top" />
</androidx.viewpager2.widget.ViewPager2>
ViewPager2 viewPager = findViewById(R.id.viewPager);
PagerTabStrip pagerTabStrip = findViewById(R.id.pagerTabStrip);
// 创建适配器
MyPagerAdapter adapter = new MyPagerAdapter(this);
// 设置适配器
viewPager.setAdapter(adapter);
// 设置PagerTabStrip与ViewPager2关联
pagerTabStrip.setTabIndicatorColor(Color.RED);
pagerTabStrip.setDrawFullUnderline(true);
pagerTabStrip.setViewPager(viewPager);
public class MyPagerAdapter extends RecyclerView.Adapter<MyPagerAdapter.MyViewHolder> {
private Context context;
private List<String> titles;
public MyPagerAdapter(Context context) {
this.context = context;
this.titles = Arrays.asList("Tab 1", "Tab 2", "Tab 3");
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_page, parent, false);
return new MyViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.textView.setText(titles.get(position));
}
@Override
public int getItemCount() {
return titles.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder {
TextView textView;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.textView);
}
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
</LinearLayout>
通过以上步骤,你就可以在ViewPager2中使用PagerTabStrip了。PagerTabStrip提供了一个简单的标签栏,用于显示当前页面的标题,并且可以与ViewPager2进行关联,实现滑动切换页面的效果。你可以根据需要自定义PagerTabStrip的样式和行为。
腾讯云相关产品和产品介绍链接地址:
云原生正发声
Elastic 实战工作坊
企业创新在线学堂
DBTalk技术分享会
Techo Day
云+社区技术沙龙[第9期]
企业创新在线学堂
领取专属 10元无门槛券
手把手带您无忧上云