Bagaimana hubungan lifecycle Fragment dengan Activity?
Langkah implementasi dasar Fragment AndroidX
Perbedaan Fragment dengan Activity dalam UI
Kapan harus menggunakan Fragment vs Activity?
Reference Points
Android Development with Kotlin (Pages 18-22, 28)
Definisi dan Konsep Dasar Fragment
Fragment merupakan komponen UI yang merepresentasikan sebagian antarmuka pengguna atau perilaku dalam sebuah Activity. Istilah “microactivity” digunakan karena Fragment memiliki lifecycle sendiri namun harus selalu berada dalam konteks Activity sebagai host-nya. Tidak seperti Activity yang berdiri sendiri, Fragment dirancang untuk modularitas dan reuseabilitas antarmuka pengguna.
Contoh penggunaan umum Fragment termasuk:
Membuat tampilan responsif untuk perangkat tablet (misal: menampilkan daftar item dan detail bersebelahan)
Mengelola bagian UI yang kompleks secara terpisah
Membuat antarmuka dinamis yang dapat diubah saat runtime
Siklus Hidup Fragment
Lifecycle Fragment terkait erat dengan Activity host-nya namun memiliki beberapa tahapan tambahan:
onAttach(): Fragment terhubung ke Activity
onCreate(): Inisialisasi komponen esensial
onCreateView(): Menginflate layout UI
onViewCreated(): Setup tampilan setelah inflate
onStart(): Fragment menjadi terlihat
onResume(): Fragment aktif berinteraksi
onPause(): Fragment mulai tidak aktif
onStop(): Fragment tidak terlihat
onDestroyView(): View dihancurkan
onDestroy(): Fragment dihancurkan
onDetach(): Fragment terlepas dari Activity
Analogi: Bayangkan Fragment sebagai tanaman dalam pot (Activity). Saat pot dipindahkan (Activity pause/stop), tanaman juga terpengaruh, tetapi memiliki siklus hidup sendiri.
Implementasi Fragment dengan AndroidX
Gunakan AndroidX Fragment (androidx.fragment.app.Fragment) bukan versi platform yang sudah deprecated. Implementasi dasar:
class DetailFragment : Fragment() {override fun onCreateView(inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?): View? {// Inflate layout XMLreturn inflater.inflate(R.layout.detail_fragment, container, false)}override fun onViewCreated(view: View, savedInstanceState: Bundle?) {super.onViewCreated(view, savedInstanceState)// Setup UI components here}}
Penting untuk menggunakan onViewCreated() daripada onCreateView() untuk inisialisasi komponen UI karena view sudah diinflate sepenuhnya.
Fragment dan Manajemen UI
Fragment mengelola bagian UI sendiri melalui metode onCreateView() yang mengembalikan root view. Keunggulan dibanding Activity:
Reusabilitas: Fragment yang sama dapat digunakan di multiple Activity
Modularitas: Tiap bagian UI dikelola secara terpisah
Dinamis: Dapat ditambah/dihapus saat runtime dengan FragmentTransaction
Contoh praktis: Aplikasi e-commerce menggunakan Fragment terpisah untuk kategori produk, keranjang belanja, dan detail produk yang dapat dikombinasi berbeda di handphone vs tablet.
Summary
Fragment merupakan komponen UI modular yang berperan sebagai “microactivity” dengan lifecycle terkait Activity host-nya. Lifecycle Fragment memiliki tahapan khusus seperti onAttach() dan onDetach() yang mengatur hubungan dengan Activity. Implementasi wajib menggunakan AndroidX Fragment (androidx.fragment.app.Fragment) untuk kompatibilitas jangka panjang. Fragment ideal untuk membuat UI responsif yang dapat dikombinasikan ulang dan diubah saat runtime, berbeda dengan Activity yang lebih cocok untuk layar penuh independen.
Additional Information
Perbandingan Lifecycle Fragment dan Activity
| Tahapan Fragment | Tahapan Activity | Keterangan |