Mengenal Lebih Jauh Fungsi Fragment Pada Aplikasi Android

komputerdia.comFragment adalah salah satu fitur yang merupakan bagian dari UI dalam activity. Dalam hal ini, kalian dapat menggabungkan beberapa fragment dalam activity untuk membuat multi-pane UI. Sedangkan menurut situs resmi dari android, pengertian Fragment adalah perwakilan melalui suatu perilaku atau bagian dari antarmuka pengguna dalam Activity. Dalam hal ini kalian dapat mengombinasikan beberapa fragmen dalam satu aktivitas untuk membangun UI multipanel dan menggunakan kembali sebuah fragmen dalam beberapa aktivitas.

Selain itu, kalian bisa menganggap fragmen sebagai bagian modular dari aktivitas, yang memiliki daur hidup sendiri, menerima kejadian masukan sendiri, dan yang bisa kalian tambahkan atau juga bisa di hapus saat aktivitas berjalan (seperti "sub aktivitas" yang bisa digunakan kembali dalam aktivitas berbeda).

Perlu dikatahui, bahwa Fragmen juga harus selalu tersemat dalam aktivitas dan daur hidup fragmen secara langsung dipengaruhi oleh daur hidup aktivitas host-nya. Misalnya, saat aktivitas dihentikan sementara, semua fragmen di dalamnya juga dihentikan sementara, dan bila aktivitas dimusnahkan, semua fragmen juga demikian.

Akan tetapi, saat aktivitas berjalan, kalian bisa melakukan aksi manipulasi setiap fragmen secara terpisah, seperti menambah atau membuangnya. Saat melakukan transaksi fragmen, kalian juga bisa menambahkannya ke back-stack yang dikelola oleh aktivitas setiap entri back-stack merupakan catatan transaksi fragmen yang terjadi.

Ada beberapa hal yang perlu kalian ketahui tentang fragment diantaranya yakni: 
  1. Fragment memiliki siklus hidup(lifecycle) sendiri
  2. Fragment dapat proses event sendiri
  3. Fragment dapat ditambah atau dihapus ketika activity sedang berjalan .
Untuk menindak lanjuti masalah fragment ini, sekarang coba kalian buka salah satu menu pada android. Contohnya disini saya akan membuka kontak (contact), dimana aplikasi ini merupakan bagian dari listview, yang ketika disentuh oleh user maka akan mencul informasi atau item yang lebih terperinci pada halaman yang lainnya, biasanya disebut juga dengan detail view .

Baca Juga Artikel Lainnya :
Mengenal Fungsi Fragment Pada Aplikasi Android

Penjelasan dan Pemecahan Masalah Fragment

Pada UI smartphone, ketika kalian mengetuk aplikasi seperti 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 karena tablet memiliki ukuran lebih lebar maka listview, DetailView dan other data view akan muncul secara bersamaan dalam halaman yang sama.

Untuk lebih menjelaskan penjelasan diatas, kalian bisa lihat ilustrasi gambar dibawah ini, dimana gambar tersebut telah mewakilkan gambaran dari proses fragment pada smartphone android .

Mengenal Lebih Jauh Fungsi Fragment Pada Aplikasi Android

Mengenal Siklus Hidup Pada Fragment

Perlu kalian ketahui bahwa Class fragment memiliki kode yang terlihat hampir serupa seperti Activity, dimana ragment berisikan sebuah method callback yang serupa dengan apa yang terdapat pada Activity, contohnya seperti onCreate (), onStart (), onPause (), dan OnStop (). Siklus hidup dari fragment berhubungan dengan siklus hidup Activity, berikut ini adalah ilustrasi dari tahapan siklus hidup fragment yang berkaitan dengan siklus hidup dari activity.

Mengenal Lebih Jauh Fungsi Fragment Pada Aplikasi Android

Dari keterangan ilustrasi gambar diatas, bisa kita jelaskan sebagai berikut :
  1. Activity onCreate() , dipanggil didalam masalah ini activity dapat mengatur tampilan dengan menggunakan method setContentView().
  2. OnAttach() , dipanggil setelah fragment dikaitkan dengan activity. Dalam hal ini Fragment akan mendapatkan sebuah refrensi ke objek activity yang dapat digunakan sebagai konteks.
  3. OnAttach Fragment , dipanggil oleh activity untuk menotifikasi activity bahwa fragment telah dilakukan attach.
  4. OnCreate () , dipanggil ketika saat dibuat fragment. Lantas apa yang menjadi perbedaan antara oncreate() di activity dan Oncreate di fragment ?
    Pada oncreate() di Activity, Kita bisa gunakan setContentView() dan menghubungkan dengan tampilan (UI).
    Pada Oncreate() di fragment seharusnya kita tidak mengakses element UI dari fragment karena Activity Oncreate() mungkin belum selesai,namun, kita bisa membuat backgroud thread untuk membuat operasi lebih lama.
  5. Method OnCreateView() , dipanggil  dalam fragment, disinilah kita dapat menautkan layout fragment dengan objeknya.
  6. OnActivityCreated() , dipanggil setelah method activity onCreate() selesai. jadi disini kita dapat mengakses element UI melalui method ini.
  7. OnStart() , dipanggil di dalam activity
  8. OnStart(), dipanggil di dalam fragment
  9. OnResume() , dipanggil di dalam activity
  10. OnResume() , dipanggil di dalam fragment
Perlu kalian pahami, bahwa kotak merah yang terdapat pada ilustrasi gambar diatas, dapat 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 penjelasan pengaktifan fragment diatas, kali ini kita akan melakukan sebuah tindakan pemberhentian fragment atau penghancuran pada fragment (destroyed), maka alur yang akan terjadi adalah sebagai berikut :

Mengenal Lebih Jauh Fungsi Fragment Pada Aplikasi Android

Maka penjelasan dari ilustrasi gambar diatas, adalah sebagai berikut :
  1. onPause(), dipanggil di dalam fragment.
  2. onPause(), dipanggil di dalam activity
  3. onSaveInstanceState (), digunakan untuk menyimpan informasi fragment dalam objek Bundle.
  4. onSaveInstanceState (), digunakan untuk menyimpan informasi activity dalam objek Bundle.
  5. onStop(), dipanggil di dalam fragment.
  6. onStop(), dipanggil di dalam Activity.
  7. onDestroyView (), dipanggil setelah hirarki view fragment tidak lagi dapat diakses.
  8. onDestroy (), dipanggil setelah fragment tidak digunakan, masih ada objek java melekat pada activity.
  9. onDestroy (), dipanggil di dalam activity.
  10. onDetach (), fragment tidak terikat dengan activity, dan tidak memiliki 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.java seperti pada contoh 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 java class baru dengan nama FragmentKompi.Java pada direktory app/java/com.komputerdia.fragmentlifecycle .
Mengenal Fungsi Fragment Pada Aplikasi Android
  • Perlu kalian ingat juga, bahwa didalam file ini terdapat method-method callback yang menjelaskan siklus hidup (LifeCycle). Method Log.d() digunakan 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, seperti pada contoh 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 baru dengan nama fragment_layout.java 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 adalah 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 deretan - deretan sebuah pesan Log
  • Semoga bermanfaat untuk kalian semuanya

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2