kaçınacağımız bu yöntemle backStack aynı parçayı ekleyerek çalışıyorum: ProfileMainFragment
ve birkaç açar profilePhoto
ile ImageView:backStack için iki kez aynı parçayı eklemek önlemek çalışılıyor, popBackStackImmediate daima return false
public static void replaceFragment(FragmentManager fragmentManager, Fragment fragment, Boolean addToBackStack) {
String backStateName = fragment.getClass().getName();
boolean fragmentPopped = fragmentManager.popBackStackImmediate(backStateName, 0);
if (addToBackStack && !fragmentPopped && fragmentManager.findFragmentByTag(backStateName) == null) {
fragmentManager
.beginTransaction()
// .setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right, android.R.anim.fade_in, android.R.anim.fade_out)
.replace(R.id.container, fragment)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.addToBackStack(backStateName) // was 'backStateName'
.commit();
} else {
if (!addToBackStack)
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
fragmentManager
.beginTransaction()
// .setCustomAnimations(android.R.anim.slide_in_left, android.R.anim.slide_out_right, android.R.anim.fade_in, android.R.anim.fade_out)
.replace(R.id.container, fragment)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.disallowAddToBackStack()
.commit();
}
}
Navigasyon Çekmece içeriyor MainFragmentCategory
'u açan kategoriler. Boolean addToBackStack
fragmanı (MainFragmentCategory
den DetialFragmentCategory
taşımak) parçası olan seçilmiş zaman navigationDrawerMenu
ve true
arasından seçilmiş ya da navigationDrawer
içinde profilePhoto
tıklayın zaman false
olup.
fragmentPopped
her zaman false
'dir, neden böyle? ve öğelerini navigationDrawer
içinde tıklatsam bile. İkinci (ve üçüncü ve dördüncü) bir zaman için backStack'a eklemekten kaçınmalı, ama yapmadı.
Herhangi bir fikri nasıl doğru yapabilirim?
Aynı parçayı iki kez eklemek için ne yapmaya çalıştığınızı sorabilir miyim? BackStack navigasyon histroy gibidir. Eğer kullanıcı A> B> A> C'den başlıyorsa, kullanıcı C'ye geri döner. B yerine B'ye geri dönmelidir. – Joshua
Böyle bir şeyden kaçınmak istiyorum: A> B> B> B ve Bu: A> B. – y07k2
Kullanıcı çekmeceyi tıklattığında, geçerli fragmanı kontrol edersiniz. Aynı ise, o zaman değiştirmeyin. – Joshua