Selamat datang kembali di blog yang sudah usang ini (*ambil_kemoceng), mohon maaf jika lama gak update, dikarenakan sedang liburan :D, libur nulis maksudnya :D, oke ini malem minggu dan banyak waktu luang (karena LD*) maka saya tetapkan untuk menghabiskan waktu ini dengan kegiatan yang positif selain bermain Dota 2
Pada artikel kali ini kita akan membahas salah satu interface di android API yakni Fragment, jadi gini Fragment itu seperti Activity yang menghandle sebuah layout, namun bedanya, Fragment tidak dapat berjalan individual fragment selalu membutuhkan sebuah Activity, simplenya sebuah fragment selalu berjalan di atas Activity.
Keuntungan menggunakan Fragment itu sendiri adalah ketika dihadapkan pada masalah mengenai multi-pane UI, perhatikan gambar berikut
src : http://developer.android.com/images/fundamentals/fragments.png
Contoh kasus di atas adalah apps news
jadi nanti UI di Tablet dan Smartphone berbeda, ketika berjalan di smartphone yang ditampilkan ke user adalah list headline newsnya, dan ketika di klik listnya maka akan berpindah ke detail newsnya, namun ketika di tablet behaviornya akan berbeda, karena tablet memiliki space screen yang lebar maka akan dibuat headhline dan detail berita akan muncul secara bersama, dikiri listnya dikanan detail newsnya, maka dari kasus tersebut akan terdapat 2 Fragment dan 1 Activity.
jadi nanti UI di Tablet dan Smartphone berbeda, ketika berjalan di smartphone yang ditampilkan ke user adalah list headline newsnya, dan ketika di klik listnya maka akan berpindah ke detail newsnya, namun ketika di tablet behaviornya akan berbeda, karena tablet memiliki space screen yang lebar maka akan dibuat headhline dan detail berita akan muncul secara bersama, dikiri listnya dikanan detail newsnya, maka dari kasus tersebut akan terdapat 2 Fragment dan 1 Activity.
dan yang perlu diperhatikan adalah Lifecycle dari Fragment itu sendiri, ada sedikit perbedaan dengan lifecycle nya Activity, untuk jelasnya bisa melihat gambar berikut
src : https://github.com/xxv/android-lifecycle
Oke, sekarang kita coba mulai, kali ini saya menggunakan Android Studio version 0.8.6(via Canary Build)
buat project baru, terserah namanya mau apa
Untuk minimum SDK set Api 10
klik next, dan pastikan dipilih blank_activity
Langkah pertama membuat class baru, ctrl+n
kemudian extends class yang barusan dibuat tadi ke class Fragment, dan yang perlu di ingat jika versi minSDK yang anda set adalah 10 maka harus/wajib menggunakan Fragment yang dari support.v4 agar dapat berjalan di android dibawah Honeycomb
kemudian override method onCreateview
kemudian buat layout baru untuk fragment kita
buat layout versi kalian, gak mesti sama dengan yang dibawah
langkah terakhir adalah menset layout yang barusan dibuat, buka file MyFragment.java
rubah method oncreateview menjadi seperti ini
rubah method oncreateview menjadi seperti ini
Sebelum menambahkan fragment kedalam activity, pastikan Activitynya mengextends ke FragmentActivity atau ActionBarActivity,
Jika di awal, project di set min SDK 10 maka Android Studio akan otomatis menambahkan support library Appcompat, Class ActionBarActivity ini berasal dari library tersebut
Selanjutnya adalah menambahkan layout kedalam activity, ada 2 cara untuk menambahkan fragment kedalam activity
Cara pertama :
– via layout
buka file activity_my.xml
kemudian tambahkan tag fragment kedalamnya, perhatikan gambar dibawah
ketika dijalankan tampilannya akan seperti ini
Untuk langkah kedua, pada bagian layout tidak langsung di arahkan ke Fragment, namun diganti menjadi framelayout seperti ini
kemudian pada bagian class nya dirubah menjadi seperti berikut
baris 17
baris 17
disini saya menggunakan bantuan dari method getSupportFragmentManager
saya lebih sering menggunakan cara yang ini dikarenakan lebih fleksibel untuk pergatian fragment, jika cara pertama tadi untuk menambahkan fragment harus melalui file layout (hardcoded -> hindari seperti ini). Dengan cara kedua untuk mengganti fragment tinggal memanggil containernya dan tinggal ganti fragmentnya by code
yang perlu di ingat adalah
garis merah -> container untuk fragmentnya
garis hijau -> fragment yang mau ditampilkan
garis hijau -> fragment yang mau ditampilkan
dan yang terakhir jangan lupa di commit
Tak terasa waktu sudah larut malam, dan malam minggu yang su* ini segera berakhir sesi ini juga harus berakhir tapi tunggu, akan ada lagi sesi selanjutnya mengenai bab fragment ini, sesi selanjutnya adalah bagaimana handling listener suatu object yang ada di fragment. Stay tune gaaeeess :v
Salam code < / >
Tidak ada komentar:
Posting Komentar