Rumah >Java >javaTutorial >Mengapa Serpihan Saya Tidak Menggantikan Satu Sama Lain dalam Kumpulan Aktiviti Android Saya?

Mengapa Serpihan Saya Tidak Menggantikan Satu Sama Lain dalam Kumpulan Aktiviti Android Saya?

Susan Sarandon
Susan Sarandonasal
2024-11-25 06:20:15536semak imbas

Why Aren't My Fragments Replacing Each Other in My Android Activity Group?

Menggantikan Serpihan dalam Kumpulan Aktiviti

Menggantikan serpihan dalam kumpulan aktiviti boleh menjadi tugas yang rumit jika anda tidak biasa dengan rangka kerja pemecahan Android .

The Masalah

Apabila cuba menggantikan serpihan dalam kumpulan aktiviti dengan serpihan lain, anda mungkin menghadapi situasi di mana kod kelihatan berjaya dilaksanakan, tetapi tiada perubahan visual berlaku. Ini boleh membingungkan, kerana tiada mesej pengecualian dipaparkan.

Penyelesaian

Isu timbul daripada fakta bahawa serpihan berkod keras dalam XML tidak boleh diganti. Sebaliknya, serpihan hendaklah ditambah secara dinamik untuk membolehkan penggantian.

Untuk menambah dan menggantikan serpihan secara dinamik:

  1. Buat reka letak atau bekas (cth., fragment_container) dalam aktiviti yang akan disimpan serpihan.
  2. Buat serpihan baharu instance.
  3. Buat FragmentTransaction menggunakan getSupportFragmentManager().
  4. Gunakan transaction.replace() untuk menggantikan serpihan semasa dalam fragment_container dengan serpihan baharu.
  5. Tambahkan transaksi ke timbunan belakang menggunakan transaction.addToBackStack(null) if dikehendaki.
  6. Komit transaksi menggunakan transaction.commit().

Contoh Kod

Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();

Nota:

  • Serpihan yang ditambah melalui susun atur xml tidak boleh diganti.
  • R.id.fragment_container boleh menjadi sebarang susun atur atau bekas yang sesuai dalam aktiviti.

Atas ialah kandungan terperinci Mengapa Serpihan Saya Tidak Menggantikan Satu Sama Lain dalam Kumpulan Aktiviti Android Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn