récemment plongé dans des fragments et de ce que je comprends de créer un fragment, vous avez besoin d'une classe Java et de la mise en page des fragments. C'est logique. Cependant, ce que je ne peux pas sembler envelopper ma tête est ce que "conteneur" ou la mise en page est-ce que j'utilise pour stocker / insérer le fragment? Dans Android Studio, vous pouvez utiliser Ce pour insérer des fragments, ou vous pouvez utiliser un autre les mises en page. Mais lequel est idéal pour utiliser? P>
J'ai également vu dans un poste de Reddit que je ne devrais pas utiliser de fragments du tout et que c'est préféré, utilisez la mise en page de trame et de jouer avec votre visibilité de votre vue pour les effets souhaités. Est-ce vrai? p>
3 Réponses :
Vous êtes légèrement sur-complétant le concept de fragments.
Fragments, comme des activités, n'ayez pas besoin d'un fichier XML de layouche dédié de fragments. Si vous choisissez de le faire, vous pouvez créer toute la mise en page via le code Java, pas que je comprendrai pourquoi vous choisirez de le faire. Em> p> donc pour des fragments, vous Vous n'avez pas besoin d'une classe Java et d'un fichier de mise en page d'un fragment. La seule exigence est la classe Java et le fichier de mises en page n'est que l'approche préférée de gonfler une mise en page, semblable à la manière dont elle est pour les activités. P> Quant à votre question sur le conteneur des fragments, c'est vraiment une question de la conception de votre application. P> Vous pouvez ajouter un fragment à votre activité ou à vos autres fragments, via le code aucun de ce n'est le meilleur moyen ou le moyen préféré, car cela dépend vraiment de ce que votre application a besoin. p> à l'aide de la balise Par exemple, disons que vous avez conçu un fragment flexible AddNew qui est utilisé dans une boîte de dialogue et une addNewactivity. En raison de la réutilisation du même écran et du même code, vous décidez de faire cette partie de votre code un fragment afin que vous puissiez l'insérer dans une boîte de dialogue ou une autre activité. Mais, pour ces dialogogments et activités, le fragment Quant à l'option avec le code Java, l'approche préférée consiste à utiliser un L'approche commune consiste à simplement utiliser: p> fragmentmanager code> dans le code ou via la balise
code> tag. P>
framelayout code>.
getSupportFragmentManager().beginTransaction().replace(R.id.container, AddNewFragment.newInstance()).commit();
Merci pour une réponse aussi détaillée, cela a vraiment aidé! Et en ce qui concerne les visibilités d'affichage, je pense que je regardais un tutoriel YouTube sur la façon de changer de fragments avec un autre bouton sur le bouton.
Hmm, vous devriez voir si vous pouvez retrouver ce tutoriel. Parce que si vous souhaitez basculer un fragment avec un autre fragment, vous utilisez simplement ce getupportfragmentManager (). Begintransaction (). Remplacer (R.Id. Container, AddNewfragment.Newinstance ()). COMMIS (); / code> code. En disant
remplacer () code> et donnant le même conteneur, vous éteignez essentiellement l'ancien fragment à l'intérieur de ce conteneur avec un nouveau. Ceci est couramment fait si vous utilisez un tiroir pour la navigation.
Vous pouvez utiliser la disposition code> fragment code>, mais ce n'est pas très flexible. Si vous affichez simplement un Vous pouvez voir un Par exemple, si vous souhaitez insérer fragment code>, il doit fonctionner, mais utiliser un
framelayout code> et insérer votre
fragment code> dans cela fonctionne mieux car cela vous permet Pour les changer à la volée.
framelayout code> avec l'identifiant
r.id.container code> ou quelque chose de similaire, et ce que cela est utilisé pour est le < Code> transaction code>. p>
fragmentone code> dans votre mise en page, vous pouvez simplement le faire et cela va le mettre dans
R.id.container code>. P>
Vous pouvez utiliser le nouveau Androidx.fragment.app.fragmentContainerview pour obtenir une meilleure performance que Framelayout. P>
ici Plus d'informations. P>