0
votes

Quelle mise en page utiliser avec des fragments?

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?

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?


0 commentaires

3 Réponses :


2
votes

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 fragmentmanager code> dans le code ou via la balise code> dans votre licence.xml des dossiers. P>

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 code> provoquera ce fragment pour toujours être ajouté à chaque fois que la mise en page est gonflée. Ceci est en fait très mauvais si votre activité nécessite des fragments de commutation de manière dynamique due à votre utilisation des éléments tels que ViewPagers, des onglets, une navigation dans le tiroir, ouc. Cependant, c'est génial s'il n'y a pas besoin de basculer de manière dynamique des fragments et de cette activité spécifique ou de cette activité. Ce fragment est un fragment qui est toujours chargé. P>

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 STRT> STRAND> IT `Ça aura est le SODENEWFRAGMRAGMENT, il est donc logique de simplement insérer ce fragment dans la disposition de la boîte de dialogue et la mise en page d'activité via le code> tag. P>

Quant à l'option avec le code Java, l'approche préférée consiste à utiliser un framelayout code>. mais il n'y a pas besoin de jouer avec aucune visibilité de visualisation! strong> p>

L'approche commune consiste à simplement utiliser: p>

getSupportFragmentManager().beginTransaction().replace(R.id.container, AddNewFragment.newInstance()).commit(); 


2 commentaires

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 () 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.



0
votes

Vous pouvez utiliser la disposition fragment , mais ce n'est pas très flexible. Si vous affichez simplement un fragment , il doit fonctionner, mais utiliser un framelayout et insérer votre fragment dans cela fonctionne mieux car cela vous permet Pour les changer à la volée.

Vous pouvez voir un framelayout avec l'identifiant r.id.container ou quelque chose de similaire, et ce que cela est utilisé pour est le < Code> transaction .

Par exemple, si vous souhaitez insérer fragmentone dans votre mise en page, vous pouvez simplement le faire et cela va le mettre dans R.id.container . xxx


0 commentaires

1
votes

Vous pouvez utiliser le nouveau Androidx.fragment.app.fragmentContainerview pour obtenir une meilleure performance que Framelayout.

ici Plus d'informations.


0 commentaires