androidx的ViewPager2
正常布局
<com.google.android.material.tabs.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="72dp"
app:tabGravity="fill"
app:tabIndicatorColor="@color/green_color"
app:tabMode="scrollable"
app:tabPaddingStart="0dp"
app:tabIndicatorHeight="4dp"
app:tabSelectedTextColor="@color/select_text"
app:tabTextAppearance="@style/TabLayoutTextStyle"
app:tabTextColor="@color/tab_no_select_text" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" //决定viewpager2的竖直滑动
android:layout_marginTop="72dp" />
//java代码内的基本关联
final ArrayList<Fragment> list = new ArrayList<>();
final ArrayList<String> title = new ArrayList<>();
list.add(fragment1);
list.add(fragment2);
title.add("title1");
title.add("title2");
mBinding.detailsVp.setAdapter(new FragmentStateAdapter(this) {
@Override
public int getItemCount() {
return list.size();
}
@NonNull
@Override
public Fragment createFragment(int i) {
return list.get(i);
}
});
new TabLayoutMediator(tablayout, viewpager, new TabLayoutMediator.TabConfigurationStrategy() {
@Override
public void onConfigureTab(@NonNull TabLayout.Tab tab, int i) {
tab.setText(title.get(i));
}
}).attach();
//fragment的选中
void switchFragment(int index) {
if (!Objects.requireNonNull(tablayout.getTabAt(index)).isSelected()) {
Objects.requireNonNull(tablayout.getTabAt(index)).select();
}
}