Apabila bekerja dengan serpihan dalam kumpulan aktiviti, menggantikan satu serpihan dengan yang lain kadangkala boleh menimbulkan cabaran. Artikel ini menumpukan pada menyelesaikan isu di mana penggantian serpihan gagal memaparkan serpihan baharu.
Masalah:
Apabila cuba menggantikan serpihan dalam kumpulan aktiviti, menggunakan kod yang disediakan, serpihan baharu tidak kelihatan, walaupun kod tersebut dilaksanakan tanpa ralat.
Analisis:
Serpihan yang dikodkan keras dalam reka letak XML tidak boleh diganti secara dinamik. Untuk menggantikan serpihan, ia perlu ditambah secara dinamik.
Penyelesaian:
Untuk menyelesaikan isu ini, serpihan harus ditambah secara dinamik dan bukannya bergantung pada pengekodan keras dalam susun atur XML. Coretan kod berikut menunjukkan cara menggantikan serpihan secara dinamik:
// Create new fragment and transaction Fragment newFragment = new ExampleFragment(); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); // Replace whatever is in the fragment_container view with this fragment, // and add the transaction to the back stack if needed transaction.replace(R.id.fragment_container, newFragment); transaction.addToBackStack(null); // Commit the transaction transaction.commit();
Nota: R.id.fragment_container ialah reka letak atau bekas pilihan anda dalam aktiviti yang anda tambahkan serpihan kepada.
Dengan mengikuti pendekatan ini, serpihan boleh diganti secara dinamik, memastikan bahawa serpihan menjadi kelihatan apabila transaksi.
Atas ialah kandungan terperinci Mengapa Serpihan Baharu Saya Tidak Dipaparkan Selepas Penggantian dalam Kumpulan Aktiviti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!