嗨是我的代碼防止同一片段中多次返回堆棧這裏
navigationView.setNavigationItemSelectedListener(new NavigationView .OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { if (item.isChecked()) { //item already selected. Do nothing drawerLayout.closeDrawer(GravityCompat.START); return true; } switch (item.getItemId()) { case R.id.home: FragmentTransaction transaction = getSupportFragmentManager() .beginTransaction(); transaction.replace(R.id.fragment, new HomeFragment()) .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).commit(); break; case R.id.other: transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.fragment, new OtherFragment()) .addToBackStack(null).setTransition(FragmentTransaction .TRANSIT_FRAGMENT_FADE).commit(); break; default: break; } drawerLayout.closeDrawer(GravityCompat.START); return true; } });
我基本上只有2個片段,並僅僅是HomeFragment應該被添加到堆棧中。在HomeFragment和OtherFragment之間切換一段時間並在HomeFragment上單擊後退按鈕後,我最終將顯示HomeFragment多次顯示。 在HomeFragment內部是一個回收站。當我上下滾動時,我可以真正看到行被多次顯示。 如何確保HomeFragment只添加到後臺堆棧一次。
感謝
謝謝@janzoner的偉大答案。它充當魅力。我的recyclerView並不總是顯示數據。有些它有時只是空的。奇怪的 – DeKekem
不客氣。我希望你會用你的RecyclerView解決這個問題。如果不是,請嘗試再次在StackOverflow上尋求幫助。 – janzoner