Kata pengantar
Setelah mempelajari Java dan Android selama hampir satu tahun, hasil periode tersebut harus secara mandiri menyelesaikan klien Android dan memastikan stabilitas versi jalur utamanya. Selama periode itu, saya menemukan banyak lubang, dan saya juga belajar banyak pengetahuan Android dengan saudara lelaki saya. Tetapi orang -orang selalu harus merangkul perubahan dan tidak membuat diri mereka terlalu nyaman. Di sini kami merangkum fragmen yang paling banyak digunakan dalam item sebelumnya.
Pengantar fragmen
Fragmen dapat dipahami sebagai perilaku atau bagian dari antarmuka pengguna dalam aktivitas, dan harus bersarang dalam aktivitas. Tetapi sebuah fragmen memiliki file tata letak XML yang independen dan memiliki kemasan yang baik.
Buat fragmen
Buat fragmen dan buat suatu aktivitas.
File tata letak XML sama dengan file tata letak lainnya.
<? Versi XML = "1.0" encoding = "UTF-8"?> <linearlayout xmlns: android = "http://schemas.android.com/apk/android" android: layout_width = "match_parent" android: layout_height = " Match_pareat "android: orientasi =" vertikal "> <textview android: id ="@+id /textview "android: layout_width =" wrap_content "android: la youg_height =" wrap_content "android: text =" @string /testview " / / / / / > <Tombol android: id = "@+id /tombol" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "@string /button" /> < /linearlayout>
Dalam kode Java, secara umum, metode siklus hidup berikut dapat diimplementasikan sesuai kebutuhan: fragmen:
1. Onattach (): Ketika fragmen tergantung pada aktivitas, Anda bisa mendapatkan pegangan aktivitas dalam metode ini untuk mencapai komunikasi antara fragmen dan aktivitas.
2. OnCreate (): Inisialisasi bingkai.
3. OnCreateView (): Sistem memanggil metode ini saat menggambar antarmuka pengguna untuk pertama kalinya untuk fragmen.
4. OnactivityCreated (): Setelah dieksekusi oleh aktivitas host fungsi di atas, Anda dapat melakukan instance widget Fragment sendiri dan pemrosesan logika bisnis dalam metode ini.
5. OndestoryView (): Hubungi ketika bingkai mulai dihancurkan.
6. Onstart (): Panggil saat fragmen dapat terlihat.
Ada juga banyak fungsi panggilan balik lainnya yang digunakan untuk memanipulasi siklus hidup fragmen.
Siklus hidup fragmen
Setiap fragmen memiliki rangkaian metode panggilan balik siklus hidupnya sendiri dan menangani peristiwa input penggunanya sendiri. Siklus hidup yang sesuai ditunjukkan pada gambar di bawah ini:
Tambahkan fragmen ke aktivitas
Pertama -tama, Anda perlu memastikan bahwa akitivitas mendukung fragmen, sehingga aktivitas biasanya perlu diwariskan dari fragmentactivity. Biasanya ada dua metode untuk menambahkan fragmen ke aktivitas: statis dan dinamis.
Metode statis menambahkan fragmen langsung ke file tata letak XML aktivitas, seperti yang ditunjukkan di bawah ini:
<? Versi XML = "1.0" encoding = "UTF-8"?> <linearlayout xmlns: android = "http://schemas.android.com/apk/android" android: layout_width = "match_parent" android: layout_height = " Match_pareant "Android: BaselineAnligned =" False "Android: Orientation =" Horizontal "> <Fragment Android: id ="@+id/pertama "android: name =" com. layout_height = "match_parent" android: layout_weight = "1" /> <fragmen android: id = "@+id /kedua" android: name = "com.example.se condfragment" android: layout_width = "0dp" android: layout_height = "Match_parent" android: layout_weight = "1" /> < /linearlayout>
Ketika Android: Name Atribut di <Fragment> Menentukan kelas fragmen yang instan dalam tata letak, ketika tata letak aktivitas dibuat, itu membuat setiap bingkai dalam file tata letak dan memanggil mereka untuk memanggil mereka untuk mendapatkan masing -masing untuk mendapatkan masing -masing . Sistem secara langsung menyisipkan tampilan yang dikembalikan oleh lokasi elemen <fragment>
Catatan: Setiap fragmen membutuhkan identifikasi yang unik. Ada tiga cara untuk menyediakan ID untuk fragmen: ada tiga cara:
Metode dinamis
Gunakan transkasi fragmentTripation. Anda dapat menggunakan API fragmentTranscation untuk mengoperasikan fragmen aktivitas (seperti menambahkan, menghapus, atau mengganti fragmen). Kode referensi adalah sebagai berikut:
Fragmanager FragmentManager = GetFragmentManager () FragmentTraction = FragmentManager.Begintraction ();
Parameter pertama dari fungsi ADD () adalah kelompok view dari fragmen, yang ditentukan oleh ID sumber daya (ID sumber daya). Setelah diubah melalui transkasi fragmentTred, itu harus berlaku dengan perubahan visual komit ().
Komunikasi fragmen
Fragmen tidak boleh dikomunikasikan secara langsung, dan interaksi di antara mereka harus dilakukan melalui aktivitas host. Ada tiga cara untuk berinteraksi dengan fragmen dan akitivitas:
1. Aktivitas membuat fragmen dengan parameter.
2. Aktivitas mempertahankan pegangan objek fragmen, yang dapat secara langsung disebut metode publik fragmen melalui pegangan.
3. Fragmen dapat memperoleh pegangan pendengar yang ditentukan dalam fungsi OnAttach.
Buat bingkai dengan parameter
Dalam beberapa kasus tertentu, fragmen mungkin memerlukan parameter spesifik untuk diinisialisasi. Karena fragmen hanya memiliki satu konstruktor ginseng, Anda dapat mempertimbangkan untuk menggunakan metode newinstance statis untuk membuat fragmen dengan parameter. Kode contoh adalah sebagai berikut:
Impor android.os.bundle; ;; num ", num);
Anda cukup memuat parameter dengan parameter dalam aktivitas:
FragmentTransaction ft = GetSupportFragmentManager ().
Metode memanggil fragmen
Karena aktivitas bisa mendapatkan pegangan fragmen tertanam, metode ini dapat dipanggil langsung melalui pegangan fragmen.
TestFragment kelas publik memperluas fragmen {public void dosomething (string param) {// Lakukan sesuatu dalam fragmen}}} Dalam aktivitas, Anda dapat memanggil metode ini secara langsung melalui pegangan objek fragmen:
MainAction Public memperluas fragmentActivity {@Override public void onCreate (bundle saveDanceState) {super.oncreate (saveDinceState); Pendengar fragmen
Jika fragmen perlu berbagi acara untuk aktivitas, metode ini perlu digunakan. Fragmen mendefinisikan antarmuka, dan antarmuka ini diimplementasikan oleh aktivitas. Aktivitas antarmuka akan dicapai dalam metode OnAttach ().
Kode antarmuka yang ditentukan dalam fragmen adalah sebagai berikut:
Impor android.support.v4.app.fragment; Gunakan untuk membuat komunikasi antarmuka publik OnItemselectListener {public void onrsesitemselect (string link);} // Simpan pendengar (aktivitas) yang akan memiliki acara yang ditembakkan setelah fragmen dilampirkan @Override public void onAttach (aktivitas aktivitas) {super.onattach (aktivitas (aktivitas ); Listener.onrssitemselect ("beberapa tautan");}}Menerapkan antarmuka ini dalam aktivitas:
Impor android.support.v4.app.fragmentActivity; DetailFragment);} // Sekarang kita dapat mendefinisikan tindakan di ACTICH IT ketika fragment event file @Override public void onrSeSeTemSelect (string link) {if (fragment! = null && fragment.isInlayout ()) {fragment.septext (tautan );}}}