Je suis en train d'ajouter une fonctionnalité l'application de mon équipe qui permettra à l'utilisateur de choisir entre 2 écrans d'accueil différents. Notez que ces deux écrans ont des sensations très différentes.Comment faire pour basculer le fragment de la maison entre deux fragments différents en fonction des préférences de l'utilisateur
Ma configuration actuelle pour ceci est d'avoir 2 fragments distincts Home1Fragment et Home2Fragment qui étendent tous les deux une classe abstraite appelée HomeFragment. L'utilisateur utilisera Home1Fragment par défaut jusqu'à ce qu'ils modifient la préférence dans la page des paramètres.
J'ai ces deux fragments implémentés et les deux fonctionnent correctement s'ils agissent seuls comme un écran d'accueil.
Mon problème réside lorsque j'essaie de les passer d'un fragment à un autre. J'ai essayé de cela via
@Override
public void onBackPressed() {
FragmentManager fragmentManager = getFragmentManager();
if(fragmentManager.getBackStackEntryCount() > 1) {
fragmentManager.popBackStackImmediate();
int option = getSharedPreferences('**hidden**', MODE_PRIVATE).get('home_screen_option', 0);
Fragment fragment = fragmentManager.findFragmentById(R.id.content);
if(fragment != null && fragment instanceof HomeFragment) {
if(f instanceof Home1Fragment && option == HOME_2) {
f = new Home2Fragment();
} else if (f instanceof Home2Fragment && option == HOME_1) {
f = new Home1Fragment();
}
}
} else {
finish();
}
}
Il peut y avoir des fautes de frappe dans le code ci-dessus parce que je l'ai écrit à la volée sans le code réel devant moi.
Quel est le problème avec votre code? le fragment n'est pas montré? –