我有一个“主”片段,其中包含侧面的选项卡,当我单击任何这些选项卡时,“主”片段的 ViewPager2 会跳转到 FragmentStateAdapter 中的特定片段(每个片段属于不同的类)。
假设对于其中一个片段,它有一个按钮,如果按下该按钮,它将替换 FragmentStateAdapter 中的当前片段,但选项卡仍在旁边(我们仍在“主”片段中)。如果我点击在任何选项卡上,我希望它像以前一样在特定片段中工作。
我想这样做,但我不确定该怎么做,或者它是否是正确的方法。我应该替换 FragmentStateAdapter 中的一个片段,还是应该完全销毁 ViewPager2 并用所需的片段替换它?还是有更好的方法?
这就是 FragmentStateAdapter 的样子,我想在单击其中的按钮时用不同的片段替换 EscortFragment。
public class HomeTabAdapter extends FragmentStateAdapter {
private ArrayList<Fragment> fragments;
private Context context;
public HomeTabAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle, Context context) {
super(fragmentManager, lifecycle);
this.context = context;
fragments = new ArrayList<>();
fragments.add(new HomeFragment());
fragments.add(new PurposeOfVisitFragment());
fragments.add(new GalleryFragment());
fragments.add(new EscortFragment());
fragments.add(new MapsFragment());
fragments.add(new FaqFragment());
fragments.add(new SupportFragment());
}
@NonNull
@Override
public Fragment createFragment(int position) {
return fragments.get(position);
}
@Override
public int getItemCount() {
return fragments.size();
}
}