J'ai donc rencontré un comportement étrange en ce qui concerne la méthode getVIew() de la classe de fragment. D'après la documentation, je m'attends à obtenir la vue créée dans la méthode onCreateView, comme indiqué ici [http://developer.Android.com/reference/Android/app/Fragment.html#getView()](http://developer.android.com/reference/android/app/Fragment.html#getView())
"Obtenez la vue racine pour la mise en page du fragment (celle renvoyée par onCreateView(LayoutInflater, ViewGroup, Bundle)), si elle est fournie".
Maintenant, j'ai une vue qui a un nombre assez important d'enfants, donc je voulais essayer d'économiser lorsque j'essaie de "findViewById" en implémentant une classe ViewHolder similaire à la manière commune dont cela est fait dans les adaptateurs ListView, que j'ai défini comme étant le tag de la vue retournée par le onCreateView.
Le comportement étrange se produit plus tard lorsque j'appelle la méthode getView. Il semble que le fragment renvoie le parent de la vue que je crée plutôt que la vue que je crée, ce qui entraîne le renvoi d'une balise nulle.
J'ai écrit un petit bout de code pour imprimer une vue (en imbriquant les enfants si la vue est en fait un viewGroup) et voici ce que j'obtiens.
android.widget.ScrollView android.widget.ScrollView@4242dec0
/android.widget.ScrollView
et quand je l'imprime plus tard en utilisant la méthode getView() j'obtiens
android.support.v4.app.NoSaveStateFrameLayout
android.widget.ScrollView android.widget.ScrollView@4242dec0
/android.widget.ScrollView
/android.support.v4.app.NoSaveStateFrameLayout
Comme vous pouvez le voir, le ScrollView est la vue que je crée réellement dans la méthode onCreateView. Alors pourquoi getView renvoie-t-il le parent au lieu de la vue ?