Minggu, 16 April 2023

Fragment Android

Fragment pada android digunakan untuk membagi sebuah Activity menjadi beberapa bagian yang dapat diatur secara independen. Dengan menggunakan fragment kita dapat membut UI menjadi rensponsive mengikuti ukuran device pengguna. Jadi kesimpulan nya jika kita ingin membuat tampilan yang rensponsive sesuai dengan device pengguna dan ingin memecah antarmuka pengguna mejadi beberapa bagian yang dapat diatur per bagian nya secara independen, Fragment jawaban nya.

Berikut contoh penggunan Fragment


Main Activity

Objek fragmentManager di instansiasi untuk melakukan manipulasi pada fragment seperti menambah, menghapus, mengganti fragment. Ini biasa disebut dengan Fragment Transaction. Lalu kita buat variabel homeFragment untuk menampung Objek dari HomeFragment yang akan kita gunakan nanti untuk menambah kan fragment pada MainActivity. Sebelum fragment ditambahkan ke Activity kita harus melakukan filter dulu. Bisa di lihat di code nya ada per kondisian jika (fragment !is HomeFragment) maka Akan ada log untuk mentrack aplikasi ketika running. Setelah itu kita tambahkan fragment dengan

fragmentManager.beginTransaction().add(r.id.nama_layout, fragment, NamaClass).commit()
  • beginTransaction() untuk syarat melakukan manipulasi fragment.
  • add() untuk mengaitkan fragment dengan layout tertentu.
  • commit() menandakan bahwasanya manipulasi fragment sudah selesai dan fix.

Tambahkan pada code pada activity HomeFragment menjadi seperti ini

  • OnCreateView adalah method yang akan pertama di eksekusi ketika sebuah fragment dibuat atau ditampilkan. Pada moment inilah kita menautkan sebuah layout ke fragment. Dengan kata kunci inflater.inflate(R.layout.nama_layout)
  • OnViewCreated adalah method yang akan dieksekusi setelah method OnCreateView. Disini kita menginstansiasi objek dari komponen yang ingin kita tambahkan
  • OnClick() untuk menambahkan aksi ketika sebuah button di klik. Pada kasus ini ketika button ke kategori di klik maka akan melakukan replace fragment CategoryFragment

0 comments:

Posting Komentar