Android'de yeni Gezinme Mimarisi Bileşenini kullanıyorum ve yeni bir parçaya geçtikten sonra gezinme yığınını temizlemekte takılı kaldım.
Örnek: loginFragment'tayım ve bu parçanın, ana bölüme gittiğimde yığından temizlenmesini istiyorum, böylece kullanıcı geri düğmesine bastığında loginFragment'a geri dönmeyecek.
Gezinmek için basit bir NavHostFragment.findNavController (Fragment) .navigate (R.id.homeFragment) kullanıyorum.
Mevcut Kod:
mAuth.signInWithCredential(credential)
.addOnCompleteListener(getActivity(), new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
NavHostFragment.findNavController(LoginFragment.this).navigate(R.id.homeFragment);
} else {
Log.w(TAG, "signInWithCredential:failure", task.getException());
}
}
});
Ben kullanarak çalıştı NavOptions içinde gezindiğini () , ancak geri düğmesi hala loginFragment beni geri gönderiyor
NavOptions.Builder navBuilder = new NavOptions.Builder();
NavOptions navOptions = navBuilder.setPopUpTo(R.id.homeFragment, false).build();
NavHostFragment.findNavController(LoginFragment.this).navigate(R.id.homeFragment, null, navOptions);
navigate()
yöntemi kullanabilirsiniznavigate(int resId, Bundle args, NavOptions navOptions)
NavOptions
popBackStack
veya katmayanLoginFragment
sağlamak backstack içinnull
içinaddToBackStack(null);
ve yeni ile değiştirinFragment