Je souhaite modifier dynamiquement la visibilité de fragment1
lorsque l'utilisateur clique sur button
sur Main Activity
. fragment1
est initialisé comme visible mais lorsque le bouton est enfoncé, fragment1
devient caché.Modifier dynamiquement la visibilité du fragment
J'ai lu qu'il est dangereux de changer la visibilité des fragments dans une activité et par la suite devrait être soit traité avec Fragment Manager
par exemple.
FragmentManager fragmentManager = getFragmentManager();
final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
final fragment_one fragment1 = new fragment_one();
fragmentTransaction.add(R.id.fragment_container, fragment1);
fragmentTransaction.show(fragment1); //or .hide(fragment1);
fragmentTransaction.commit();
Cependant, je crois comprendre que, une fois le fragment est engagé, il a été effectivement initialisées et ainsi de changer son état, il a besoin d'être remplacé et donc aller à travers le processus ci-dessus? Cela semble incroyablement lourd de changer quelque chose de préliminaire.
Évidemment, le bouton doit être dans le Main Activity
sinon, s'il était possible de basculer entre les états de visibilité, il sera impossible de revenir d'un état invisible à un état visible. Dans cet esprit, j'ai implémenté ce qui suit, mais cela n'a aucun effet sur le fragment - ce que je soupçonnais d'avoir déjà commis le fragment. NB: Ce qui suit est dans la méthode onCreate dans Main Activity
après avoir validé le fragment qui a été détaillé ci-dessus.
Tout conseil serait grand merci.
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
fragmentTransaction.hide(fragment1);
}
});