J'essaie de trouver quelque chose d'analogue à une méthode FragmentManager.peek().Quelle est la meilleure façon de savoir quel est le fragment actuellement affiché?
Le cas d'utilisation est que j'ai besoin d'envoyer un focus d'écran au fragment actuellement chargé. Cependant, je me retrouve à devoir garder une trace manuelle du fragment qui est actuellement affiché afin que je puisse lui dire de se concentrer.
Plus précisément, la situation est que j'ai un menu qui a un certain nombre de boutons. Lorsqu'un utilisateur clique sur un bouton, je dois transférer le focus du bouton vers une vue spécifique dans le fragment actuellement chargé - mais je n'ai aucun moyen de savoir quel fragment est actuellement chargé, il peut s'agir du fragment initial associé à l'élément de menu, ou il peut être tout à fait un autre fragment que l'utilisateur est arrivé à avoir creusé plus profondément dans le fragment d'origine ... donc ma logique doit être
pseudo...
if(currentFragment == navButton.myFragmentType)
currentFragment.sendFocusToYourFirstRelevantElement()
else
navButton.loadMyFragmentType()
mon problème est que je ne sais pas ce que le fragment actuellement affiché est, à moins que je garde la trace manuellement, mais c'est vraiment moche.
En espérant qu'il existe une solution plus native.
merci ... c'est très décevant. Mais ouais ... on dirait que tu as raison. Je pense que vous voudrez peut-être envisager de modifier votre autre réponse pour exploiter Fragment onResume() pour contourner le bouton de retour ... l'écoute de Back peut conduire à des résultats inattendus compte tenu des circonstances différentes au sein de l'implémentation. Mais onResume() est appelé de manière fiable par le fragment quand il revient du backstack ... c'est mon (moche) atm solution. –
C'est vrai, onResume serait toujours appelé. Merci! – athingunique