Maison >Java >javaDidacticiel >Pourquoi mon application Android lance-t-elle « L'enfant spécifié a déjà un parent » lors du changement de mise en page ?
Lors du basculement entre les mises en page頻繁, une exception peut survenir : "L'enfant spécifié a déjà un parent. Vous devez appeler RemoveView() sur le parent de l'enfant en premier."
Cette erreur se produit lorsque la vue, dans ce cas une TextView ("tv"), est déjà attachée à un groupe de vues parent (LinearLayout " layout") lorsque vous tentez de l'ajouter à nouveau à la nouvelle mise en page.
L'extrait de code fourni illustre un mécanisme de changement de mise en page dans Android. Lorsque la méthode "ConsoleWindow()" est exécutée initialement, elle définit la mise en page et ajoute "tv" à la "mise en page" sans problème. Cependant, lorsque la mise en page passe à une mise en page vide, puis revient à la mise en page d'origine, l'erreur est générée.
Le message d'erreur suggère la solution appropriée : supprimer la vue de son parent actuel avant de l'ajouter au nouveau parent. Pour ce faire :
<code class="java">// TEXTVIEW if(tv.getParent() != null) { ((ViewGroup)tv.getParent()).removeView(tv); // <- fix } layout.addView(tv);</code>
Cette vérification garantit que si « tv » est déjà attaché à un autre groupe de vues parent, il est d'abord supprimé avant d'être ajouté à la nouvelle mise en page, résolvant ainsi le problème de pièce jointe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!