Beranda
Menampilkan fragment secara flexible pada satu activity
Menampilkan fragment secara flexible pada satu activity

Menampilkan fragment secara flexible pada satu activity

Khaidir Fahram 17 Mar 2020 Programming 1000 Views

Lanjutkan project sebelumnya seperti pada article : Latihan menampilkan fragment pada activity

Kemudian buat 1 fragment lagi dengan nama SecondFragment 

Sesuaikan layout fragment_second.xml

<?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:padding="16dp"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Second Fragment" />

    <Button
        android:id="@+id/btn_dua"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Dua" />
</LinearLayout>

Hapus kode yang tidak perlu di SecondFragment , dan sesuaikan seperti berikut 

public class SecondFragment extends Fragment implements View.OnClickListener {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_second, container, false);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        Button button = view.findViewById(R.id.btn_dua);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if(v.getId() == R.id.btn_dua){

        }
    }
}

Kembali pada HomeFragment, tambahkan kode pada method onClick

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btn_satu) {
            SecondFragment secondFragment = new SecondFragment();
            FragmentManager manager = getFragmentManager();
            if(manager != null){
                manager.beginTransaction()
                        .replace(R.id.frame_container, secondFragment, SecondFragment.class.getSimpleName())
                        .addToBackStack(null)
                        .commit();
            }
        }
    }

Jika kita coba sekarang maka ketika kita klik Button pada HomeFragment, maka frame_container pada MainActivity akan terganti oleh SecondFragment.

Tags:Android