0
votes

Dans un fragment, comment trouver une vue définie dans la mise en page de l'activité?

Dans ma mise en page , j'ai une vue que je voudrais accéder à de son fragment attaché.

Comment pourrais-je le faire?

normalement, à partir d'un fragment , pour trouver une vue définie dans la mise en page d'un fragment (donc c'est un autre cas d'utilisation), je viens d'utiliser le Infater Pour gonfler la mise en page du fragment et appelez FINTVIEBYID .

Mais puisque ma vue est définie dans la mise en page de l'activité, je ne peux pas faire cela.

pourrais-je utiliser getactivity (). FOISVIEWBYID ?


1 commentaires

Je pense que c'est une mauvaise décision d'architecture. Vous pouvez mettre en œuvre les actions nécessaires avec cette vision directement dans Activité, implémenter la nouvelle interface, puis appeler ((((nouvelinterface) getactivité ()). Callmethod () ou exclude cette logique du fragment.


3 Réponses :


0
votes

Faites ceci:

((YourActivityName)getActivity()).viewName


0 commentaires

1
votes

Ce n'est pas une bonne pratique. Vous ne devriez pas faire ça. L'activité doit gérer sa vue sur elle-même et vous pouvez déclencher cette fonction de la poignée à l'aide d'une interface. Vérifiez cela.

https://developer.android.com/training/basics/fragments/communication


0 commentaires

1
votes

Dans la mise en page de mon activité, j'ai une vue qui je voudrais accès à partir de son fragment attaché.

Non, vous ne voulez pas.

Comment pourrais-je le faire?

getactivity (). FOISTVIEDBYID (R.ID.BLAH) , mais vous ne devriez pas.

Mais puisque ma vue est définie dans la mise en page de l'activité, je ne peux pas faire cela.

Techniquement, vous pouvez, vous ne devriez tout simplement pas.

Puis-je utiliser la getactivité (). FOISVIEWBYID?

Oui, mais vous ne devriez pas. <<


Quant à la bonne réponse, c'est pourquoi ils ont créé Android Architecture Composants: ViewModel / LiveData - Pour que vous ne seriez pas tenté d'accéder directement à des points de vue. Vous pouvez modifier les données / l'état partagé via ViewModel au même endroit et, grâce à Livetaa, tous les observateurs seraient mis à jour avec celui-ci.

Par conséquent, vous n'avez jamais besoin de toucher des vues directement, il vous suffit de mettre à jour les données. < / p> xxx

et xxx

et xxx

de cette façon: < / p>


0 commentaires