मैं एंड्रॉइड में नए नेविगेशन आर्किटेक्चर घटक का उपयोग कर रहा हूं और मैं एक नए टुकड़े पर जाने के बाद नेविगेशन स्टैक को साफ करने में फंस गया हूं।
उदाहरण: मैं लॉगिनफ्रीगमेंट में हूं और मैं चाहता हूं कि जब मैं घर के टुकड़े पर नेविगेट करूं तो यह स्टैक से साफ हो जाए ताकि उपयोगकर्ता वापस लॉगिन पर वापस नहीं आएगा जब वह बैक बटन दबाएगा।
मैं नेविगेट करने के लिए एक सरल NavHostFragment.findNavController (टुकड़ा) का उपयोग कर रहा हूं । नेविगेट करने के लिए (R.id.homeFragment) ।
वर्तमान कोड:
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());
}
}
});
मैंने नेविगेट में () में NavOptions का उपयोग करने की कोशिश की , लेकिन बैक बटन अभी भी मुझे लॉगिनफ्रीगमेंट में वापस भेज रहा है
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()
तरह की विधि का उपयोग कर सकते हैं navigate(int resId, Bundle args, NavOptions navOptions)
और NavOptions
अपने सीनेरियो को सबसे अच्छा फिट प्रदान कर सकते हैं
popBackStack
या नहीं जोड़ सकते हैं और इसे नए के साथ बदल सकते हैंLoginFragment
null
addToBackStack(null);
Fragment