Apabila bertukar antara reka letak頻繁, pengecualian mungkin timbul: "Anak yang dinyatakan sudah mempunyai ibu bapa. Anda mesti memanggil removeView() pada ibu bapa kanak-kanak dahulu."
Ralat ini berlaku apabila paparan, dalam kes ini TextView ("tv"), sudah dilampirkan pada kumpulan paparan ibu bapa (LinearLayout " reka letak") apabila cuba menambahkannya semula pada reka letak baharu.
Coretan kod yang disediakan menunjukkan mekanisme penukaran reka letak dalam Android. Apabila kaedah "ConsoleWindow()" dilaksanakan pada mulanya, ia menetapkan reka letak dan menambah "tv" pada "susun atur" tanpa masalah. Walau bagaimanapun, apabila susun atur ditukar kepada susun atur kosong dan kemudian kembali ke susun atur asal, ralat dilemparkan.
Mesej ralat mencadangkan penyelesaian yang sesuai: mengalih keluar paparan daripada induk semasa sebelum menambahkannya pada induk baharu. Untuk mencapai ini:
<code class="java">// TEXTVIEW if(tv.getParent() != null) { ((ViewGroup)tv.getParent()).removeView(tv); // <- fix } layout.addView(tv);</code>
Semakan ini memastikan bahawa jika "tv" sudah dilampirkan pada kumpulan paparan ibu bapa yang lain, ia dialih keluar terlebih dahulu sebelum ditambahkan pada reka letak baharu, menyelesaikan isu lampiran.
Atas ialah kandungan terperinci Mengapa Apl Android Saya Melemparkan \'Anak yang ditentukan sudah mempunyai ibu bapa\' Apabila Menukar Reka Letak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!