【发布时间】:2017-05-08 15:49:35
【问题描述】:
大家好,这是我的代码
navigationView.setNavigationItemSelectedListener(new NavigationView .OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { if (item.isChecked()) { //已经选择的项目。没做什么 抽屉布局.closeDrawer(GravityCompat.START); 返回真; } 开关(item.getItemId()){ 案例 R.id.home: FragmentTransaction 事务 = getSupportFragmentManager() .beginTransaction(); transaction.replace(R.id.fragment, new HomeFragment()) .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).commit(); 休息; 案例 R.id.other: 事务 = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.fragment, new OtherFragment()) .addToBackStack(null).setTransition(FragmentTransaction .TRANSIT_FRAGMENT_FADE).commit(); 休息; 默认: 休息; } 抽屉布局.closeDrawer(GravityCompat.START); 返回真; } });我基本上只有 2 个片段,只有 HomeFragment 应该添加到后台堆栈中。在 HomeFragment 和 OtherFragment 之间切换一段时间并在 HomeFragment 上单击后退按钮后,我最终会多次显示 HomeFragment。 在 HomeFragment 中有一个回收视图。当我上下滚动时,我真的可以看到这些行显示了多次。 如何确保 HomeFragment 只添加到 backstack 一次。
谢谢
【问题讨论】:
标签: android android-activity fragment