komputerdia.com - Fragment ialah salah satu fitur yang merupakan bab dari UI dalam activity. Dalam hal ini, kalian sanggup menggabungkan beberapa fragment dalam activity untuk menciptakan multi-pane UI. Sedangkan berdasarkan situs resmi dari android, pengertian Fragment adalah perwakilan melalui suatu sikap atau bab dari antarmuka pengguna dalam Activity. Dalam hal ini kalian sanggup mengombinasikan beberapa fragmen dalam satu acara untuk membangun UI multipanel dan memakai kembali sebuah fragmen dalam beberapa aktivitas.
Selain itu, kalian sanggup menganggap fragmen sebagai bab modular dari aktivitas, yang mempunyai daur hidup sendiri, mendapatkan tragedi masukan sendiri, dan yang sanggup kalian tambahkan atau juga sanggup di hapus ketika acara berjalan (seperti "sub aktivitas" yang sanggup dipakai kembali dalam acara berbeda).
Perlu dikatahui, bahwa Fragmen juga harus selalu tersemat dalam acara dan daur hidup fragmen secara pribadi dipengaruhi oleh daur hidup acara host-nya. Misalnya, ketika acara dilarang sementara, semua fragmen di dalamnya juga dilarang sementara, dan kalau acara dimusnahkan, semua fragmen juga demikian.
Akan tetapi, ketika acara berjalan, kalian sanggup melaksanakan agresi manipulasi setiap fragmen secara terpisah, menyerupai menambah atau membuangnya. Saat melaksanakan transaksi fragmen, kalian juga sanggup menambahkannya ke back-stack yang dikelola oleh acara setiap entri back-stack merupakan catatan transaksi fragmen yang terjadi.
Ada beberapa hal yang perlu kalian ketahui ihwal fragment diantaranya yakni:
Selain itu, kalian sanggup menganggap fragmen sebagai bab modular dari aktivitas, yang mempunyai daur hidup sendiri, mendapatkan tragedi masukan sendiri, dan yang sanggup kalian tambahkan atau juga sanggup di hapus ketika acara berjalan (seperti "sub aktivitas" yang sanggup dipakai kembali dalam acara berbeda).
Perlu dikatahui, bahwa Fragmen juga harus selalu tersemat dalam acara dan daur hidup fragmen secara pribadi dipengaruhi oleh daur hidup acara host-nya. Misalnya, ketika acara dilarang sementara, semua fragmen di dalamnya juga dilarang sementara, dan kalau acara dimusnahkan, semua fragmen juga demikian.
Akan tetapi, ketika acara berjalan, kalian sanggup melaksanakan agresi manipulasi setiap fragmen secara terpisah, menyerupai menambah atau membuangnya. Saat melaksanakan transaksi fragmen, kalian juga sanggup menambahkannya ke back-stack yang dikelola oleh acara setiap entri back-stack merupakan catatan transaksi fragmen yang terjadi.
Ada beberapa hal yang perlu kalian ketahui ihwal fragment diantaranya yakni:
- Fragment mempunyai siklus hidup(lifecycle) sendiri
- Fragment sanggup proses event sendiri
- Fragment sanggup ditambah atau dihapus ketika activity sedang berjalan .
Untuk menindak lanjuti problem fragment ini, kini coba kalian buka salah satu sajian pada android. Contohnya disini saya akan membuka kontak (contact), dimana aplikasi ini merupakan bab dari listview, yang ketika disentuh oleh user maka akan mencul info atau item yang lebih terperinci pada halaman yang lainnya, biasanya disebut juga dengan detail view .
Baca Juga Artikel Lainnya :
- Mengenal dan Mempelajari Komponen Arsitektur Platform Android .
- Mengenal dan Mempelajari Main Activity Di Android Studio .
- Cara Memulai dan Membuat Aplikasi Baru (Project Baru) Di Android Studio .
Penjelasan dan Pemecahan Masalah Fragment
Pada UI smartphone, ketika kalian mengetuk aplikasi menyerupai contact, maka pertama kali kalian akan melihat listview dan ketika item dari listview tersebut kalian sentuh, maka secara otomatis kalian akan berpindah ke halaman detail view, berbeda dengan UI pada tablet alasannya tablet mempunyai ukuran lebih lebar maka listview, DetailView dan other data view akan muncul secara bersamaan dalam halaman yang sama.
Untuk lebih menjelaskan klarifikasi diatas, kalian sanggup lihat ilustrasi gambar dibawah ini, dimana gambar tersebut telah mewakilkan citra dari proses fragment pada smartphone android .
Mengenal Siklus Hidup Pada Fragment
Perlu kalian ketahui bahwa Class fragment mempunyai isyarat yang terlihat hampir serupa menyerupai Activity, dimana ragment berisikan sebuah method callback yang serupa dengan apa yang terdapat pada Activity, misalnya menyerupai onCreate (), onStart (), onPause (), dan OnStop (). Siklus hidup dari fragment bekerjasama dengan siklus hidup Activity, berikut ini ialah ilustrasi dari tahapan siklus hidup fragment yang berkaitan dengan siklus hidup dari activity.
Dari keterangan ilustrasi gambar diatas, sanggup kita jelaskan sebagai berikut :
- Activity onCreate() , dipanggil didalam problem ini activity sanggup mengatur tampilan dengan memakai method setContentView().
- OnAttach() , dipanggil sehabis fragment dikaitkan dengan activity. Dalam hal ini Fragment akan mendapatkan sebuah refrensi ke objek activity yang sanggup dipakai sebagai konteks.
- OnAttach Fragment , dipanggil oleh activity untuk menotifikasi activity bahwa fragment telah dilakukan attach.
- OnCreate () , dipanggil ketika ketika dibentuk fragment. Lantas apa yang menjadi perbedaan antara oncreate() di activity dan Oncreate di fragment ?
Pada oncreate() di Activity, Kita sanggup gunakan setContentView() dan menghubungkan dengan tampilan (UI).
Pada Oncreate() di fragment seharusnya kita tidak mengakses element UI dari fragment alasannya Activity Oncreate() mungkin belum selesai,namun, kita sanggup menciptakan backgroud thread untuk menciptakan operasi lebih lama. - Method OnCreateView() , dipanggil dalam fragment, disinilah kita sanggup menautkan layout fragment dengan objeknya.
- OnActivityCreated() , dipanggil sehabis method activity onCreate() selesai. jadi disini kita sanggup mengakses element UI melalui method ini.
- OnStart() , dipanggil di dalam activity
- OnStart(), dipanggil di dalam fragment
- OnResume() , dipanggil di dalam activity
- OnResume() , dipanggil di dalam fragment
Perlu kalian pahami, bahwa kotak merah yang terdapat pada ilustrasi gambar diatas, sanggup diartikan sebagai alur untuk merepresentasikan method yang dipanggil untuk setiap fragment. Sementara itu, Untuk setiap fragment method 3,4,5 dipanggil dan akan selalu diakhiri dengan method 6.
Setelah kita memahami klarifikasi pengaktifan fragment diatas, kali ini kita akan melaksanakan sebuah tindakan pemberhentian fragment atau penghancuran pada fragment (destroyed), maka alur yang akan terjadi ialah sebagai berikut :
Maka klarifikasi dari ilustrasi gambar diatas, ialah sebagai berikut :
- onPause(), dipanggil di dalam fragment.
- onPause(), dipanggil di dalam activity
- onSaveInstanceState (), dipakai untuk menyimpan info fragment dalam objek Bundle.
- onSaveInstanceState (), dipakai untuk menyimpan info activity dalam objek Bundle.
- onStop(), dipanggil di dalam fragment.
- onStop(), dipanggil di dalam Activity.
- onDestroyView (), dipanggil sehabis hirarki view fragment tidak lagi sanggup diakses.
- onDestroy (), dipanggil sehabis fragment tidak digunakan, masih ada objek j4va menempel pada activity.
- onDestroy (), dipanggil di dalam activity.
- onDetach (), fragment tidak terikat dengan activity, dan tidak mempunyai hirarki view lagi.
Contoh Penerapan Siklus Hidup Di Aplikasi Android
- Langkah pertama silahkan kalian buka aplikasi android studio dan buatlah satu project baru .
- Langkah selanjutnya, silahkan kalian modifikasi file mainActivity.j4va menyerupai pada pola dibawah ini
package com.komputerdia.fragmentlifecycle; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
- Selanjutnya, silahkan kalian buat j4va class gres dengan nama FragmentKompi.Java pada direktory app/j4va/com.komputerdia.fragmentlifecycle .
- Perlu kalian ingat juga, bahwa didalam file ini terdapat method-method callback yang menjelaskan siklus hidup (LifeCycle). Method Log.d() dipakai untuk menghasilkan pesan Log.
package com.komputerdia.fragmentlifecycle; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * Created by komputerdia on 01-sept-17. */ public class FragmentKita extends Fragment { @Override public void onAttach (Activity activity){ Log.i("Fragment","onAttach"); super.onAttach(activity); } @Override public void onCreate (Bundle savedInstanceState){ Log.i("Fragment","onCreate"); super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ Log.i("Fragment", "onCreateView"); return inflater.inflate(R.layout.fragment_layout,container,false); } @Override public void onActivityCreated(Bundle savedInstanceState){ Log.i("Fragment","onActivityCreated"); super.onActivityCreated(savedInstanceState); } @Override public void onStart() { Log.i("Fragment","onStart"); super.onStart(); } @Override public void onResume() { Log.i("Fragment","onResume"); super.onResume(); } @Override public void onPause() { Log.i("Fragment","onPause"); super.onPause(); } @Override public void onSaveInstanceState(Bundle outState){ Log.i("Fragment","onSaveInstanceState"); super.onSaveInstanceState(outState); } @Override public void onStop() { Log.i("Fragment","onStop"); super.onStop(); } @Override public void onDestroyView() { Log.i("Fragment","onDestroyView"); super.onDestroyView(); } @Override public void onDestroy() { Log.i("Fragment","onDestroy"); super.onDestroy(); } @Override public void onDetach() { Log.i("Fragment","onDetach"); super.onDetach(); } }
- Langkah seterusnya, silahkan kalian Modifikasi file activity_main.xml, menyerupai pada pola dobawah ini
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <fragment android:layout_width="fill_parent" android:layout_height="fill_parent" android:name="com.komputerdia.fragmentlifecycle.FragmentKompi" tools:layout="@layout/fragment_layout"/> </RelativeLayout>
- Kemudian kalian Buat file XML layout gres dengan nama fragment_layout.j4va pada direktori app/res/layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingTop="100dp" android:background="#52B3D9" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="121dp" android:background="#CF000F" android:text="Ini ialah Fragment Kompi Yang Tadi Kalian Buat" android:textSize="32sp" /> </LinearLayout>
- Langkah terakhir, silahkan kalian coba jalankan aplikasi tersebut pada emulator yang kalian miliki.
- Jika langkah - langkah diatas kalian kerjakan dengan benar, maka kalian akan melihat formasi - formasi sebuah pesan Log
- Semoga bermanfaat untuk kalian semuanya