Android 在“ViewPager2”中重用“Fragment”`

Android 在“ViewPager2”中重用“Fragment”`,android,mvvm,dagger-2,android-viewpager2,Android,Mvvm,Dagger 2,Android Viewpager2,我想在ViewPager2中使用两次带有不同参数的HomeFragment,但不幸的是,它总是显示一个参数 我认为这个问题是由于匕首造成的。请看一看 这是片段模块和main活动 碎片模块: @Module public abstract class FragmentModule { @ContributesAndroidInjector() abstract CategoryFragment contributeCategoryFragmen

我想在
ViewPager2
中使用两次带有不同参数的
HomeFragment
,但不幸的是,它总是显示一个参数

我认为这个问题是由于匕首造成的。请看一看

这是
片段
模块和
main活动

碎片模块:

    @Module
    public abstract class FragmentModule {

         @ContributesAndroidInjector()
         abstract CategoryFragment contributeCategoryFragment();

         @ContributesAndroidInjector()
         abstract HomeFragment contributeHomeFragment();
    }
    public class MainActivity extends BaseActivity {
    @BindView(R.id.viewPager)
    ViewPager2 viewPager;
    @BindView(R.id.bnv)
    BottomNavigationView bnv;
    @Override
    protected int layoutRes() {
        return R.layout.activity_main;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setupViewPager();
        listenerView();
         //        NavController navController = Navigation.findNavController(this, R.id.navHostFragment);
         //        NavigationUI.setupWithNavController(bnv , navController);
    }
    private void setupViewPager() {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), getLifecycle());
        adapter.addFragment(HomeFragment.newInstance(Constants.APP));
        adapter.addFragment(HomeFragment.newInstance(Constants.GAME));
        adapter.addFragment(CategoryFragment.newInstance());
        viewPager.setUserInputEnabled(false);
        viewPager.setAdapter(adapter);
    }
    private void listenerView() {
        bnv.setOnNavigationItemSelectedListener(
                item -> {
                    switch (item.getItemId()) {
                        case R.id.nav_apps:
                            viewPager.setCurrentItem(0,false);
                            break;
                        case R.id.nav_games:
                            viewPager.setCurrentItem(1,false);
                            break;
                        case R.id.nav_category:
                            viewPager.setCurrentItem(2,false);
                            break;
                    }
                    return false;
                });
        viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                super.onPageScrolled(position, positionOffset, positionOffsetPixels);
                switch (position) {
                    case 0:
                        bnv.getMenu().findItem(R.id.nav_apps).setChecked(true);
                        break;
                    case 1:
                        bnv.getMenu().findItem(R.id.nav_games).setChecked(true);
                        break;
                    case 2:
                        bnv.getMenu().findItem(R.id.nav_category).setChecked(true);
                        break;
                }
            }
        });
    }
main活动:

    @Module
    public abstract class FragmentModule {

         @ContributesAndroidInjector()
         abstract CategoryFragment contributeCategoryFragment();

         @ContributesAndroidInjector()
         abstract HomeFragment contributeHomeFragment();
    }
    public class MainActivity extends BaseActivity {
    @BindView(R.id.viewPager)
    ViewPager2 viewPager;
    @BindView(R.id.bnv)
    BottomNavigationView bnv;
    @Override
    protected int layoutRes() {
        return R.layout.activity_main;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setupViewPager();
        listenerView();
         //        NavController navController = Navigation.findNavController(this, R.id.navHostFragment);
         //        NavigationUI.setupWithNavController(bnv , navController);
    }
    private void setupViewPager() {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager(), getLifecycle());
        adapter.addFragment(HomeFragment.newInstance(Constants.APP));
        adapter.addFragment(HomeFragment.newInstance(Constants.GAME));
        adapter.addFragment(CategoryFragment.newInstance());
        viewPager.setUserInputEnabled(false);
        viewPager.setAdapter(adapter);
    }
    private void listenerView() {
        bnv.setOnNavigationItemSelectedListener(
                item -> {
                    switch (item.getItemId()) {
                        case R.id.nav_apps:
                            viewPager.setCurrentItem(0,false);
                            break;
                        case R.id.nav_games:
                            viewPager.setCurrentItem(1,false);
                            break;
                        case R.id.nav_category:
                            viewPager.setCurrentItem(2,false);
                            break;
                    }
                    return false;
                });
        viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                super.onPageScrolled(position, positionOffset, positionOffsetPixels);
                switch (position) {
                    case 0:
                        bnv.getMenu().findItem(R.id.nav_apps).setChecked(true);
                        break;
                    case 1:
                        bnv.getMenu().findItem(R.id.nav_games).setChecked(true);
                        break;
                    case 2:
                        bnv.getMenu().findItem(R.id.nav_category).setChecked(true);
                        break;
                }
            }
        });
    }