Android ViewPager2使用不同的Fragment:错误->始终显示相同的Fragment。
创始人
2024-08-19 04:30:14
0

在Android中,使用ViewPager2来切换不同的Fragment时,可能会遇到始终显示相同的Fragment的问题。这个问题通常是由于ViewPager2的适配器没有正确设置导致的。以下是解决该问题的步骤和代码示例:

  1. 确保你的ViewPager2适配器继承自FragmentStateAdapter类,并重写getItemCount()和createFragment()方法。
public class ViewPager2Adapter extends FragmentStateAdapter {
    private List fragments;

    public ViewPager2Adapter(FragmentManager fragmentManager, List fragments) {
        super(fragmentManager);
        this.fragments = fragments;
    }

    @Override
    public int getItemCount() {
        return fragments.size();
    }

    @NonNull
    @Override
    public Fragment createFragment(int position) {
        return fragments.get(position);
    }
}
  1. 在创建ViewPager2时,传入正确的FragmentManager和一个包含所有要显示的Fragment的列表。
ViewPager2 viewPager2 = findViewById(R.id.viewPager2);
List fragments = new ArrayList<>();
fragments.add(new Fragment1());
fragments.add(new Fragment2());
fragments.add(new Fragment3());

ViewPager2Adapter adapter = new ViewPager2Adapter(getSupportFragmentManager(), fragments);
viewPager2.setAdapter(adapter);

确保FragmentManager是正确的,如果你正在使用FragmentActivity,则使用getSupportFragmentManager(),如果你正在使用AppCompatActivity,则使用getSupportFragmentManager()

  1. 如果你在运行时动态添加或删除了Fragment,请确保更新适配器的Fragment列表,并调用notifyDataSetChanged()方法。
List fragments = new ArrayList<>();
fragments.add(new Fragment1());
fragments.add(new Fragment2());
fragments.add(new Fragment3());

adapter.setFragments(fragments);
adapter.notifyDataSetChanged();

这样,你就可以在ViewPager2中使用不同的Fragment,并且不会遇到始终显示相同的Fragment的问题了。

相关内容

热门资讯

我来教大家“创思维激k透视源码... 大家好,今天小编来为大家解答创思维激k透视源码这个问题咨询软件客服可以免费测试直接加微信(13670...
记者揭秘“途游辅助软件”从来有... 途游辅助软件是一款专注玩家量身打造的游戏记牌类型软件,在途游辅助软件这款游戏中我们可以记录下每张牌的...
如何分辨真伪“江湖悠悠游戏辅助... 【亲,江湖悠悠游戏辅助 这款游戏可以开挂的,确实是有挂的,很多玩家在这款江湖悠悠游戏辅助中打牌都会发...
终于知道“花花生活圈辅助”往昔... 终于知道“花花生活圈辅助”往昔有辅助安装(有挂教程);无需打开直接搜索加薇136704302(咨询了...
信息共享“poker mast... 信息共享“poker master辅助”固有有开挂辅助工具(证实有挂)您好:poker master...
玩家必看秘籍“朋朋政和辅助器免... 朋朋政和辅助器免费在哪里是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可...
推荐一款“wepoker可以免... 推荐一款“wepoker可以免费玩吗”从来有开挂辅助下载(有挂解密)您好:wepoker可以免费玩吗...
今日焦点“新道游正版辅助微信辅... 今日焦点“新道游正版辅助微信辅助”往昔有辅助开挂平台(有挂攻略);无需打开直接搜索加(薇:13670...
玩家实测“桂林老k字牌免费安装... 桂林老k字牌免费安装是一款专注玩家量身打造的游戏记牌类型软件,在桂林老k字牌免费安装这款游戏中我们可...
分享开挂内幕“花花生活圈辅助”... 分享开挂内幕“花花生活圈辅助”往昔有辅助开挂软件(存在有挂);无需打开直接搜索加(薇:1367043...