Fragment trong android là gì

Xin chào chúng ta bọn họ lại gặp gỡ nhau trong series Android truyền kì. Buổi trước tôi đã trình làng cùng với chúng ta về vòng đời của Activity từ bây giờ tôi xin ra mắt cùng với các bạn về Fragment.

Bạn đang xem: Fragment trong android là gì

Fragment là gì


*

Fragment trong Android


Nhìn vào hình trên các bạn có thấy điều gì khác hoàn toàn ko làm sao. Nlỗi chúng ta thấy bên trên hình xuất xắc bên cạnh thực tiễn thì gồm một trong những ứng dụng đã không những bao gồm một size hiển thị câu chữ nhưng có tương đối nhiều khung để hiện lên nội dung khác biệt trên một màn hình với phần nhiều tác vụ của từng màn hình hiển thị là khác biệt. Nhỏng hình trên cái mấy tình bảng ta thấy có hai size hiển thị là một khung chứa list Item và một form hiển thị cụ thể của các Item đươc chọn(tôi đân oán cố =))) ) vậy là trên một màn hình hiển thị hay 1 Activity đã chứ đọng nhì Fragnent là A với B. Fragment A với B sẽ có mọi trách nhiệm khác nhau và vẫn thuộc hiển thị và chạy xe trên một màn hình vị vậy nói theo một cách khác Fragment là Sub Activity. Các Fragment đều phải sở hữu file Java cùng file bối cảnh XML riêng biệt như Activity cùng những Fragment không có file Java thì sẽ tiến hành call là headless fragments.

Vòng đời của Fragment.

Như tôi đang nói trên Fragment rất có thể xem là một Activity nhỏ vì thế nó cũng đều có một số tính chất của Activity cùng tương tự như Activity nó cũng có thể có vòng đời của nó cùng sơ đồ gia dụng dưới đây chính là sơ đồ vòng đời của Fragment.


*

Vòng đời của Fragment


Như chúng ta thấy nó cũng có thể có những hàm tương tự cùng với Activity đúng không nhỉ nào. Tôi xin nói sơ qua về tác dụng của các hàm:

onAttach(): hàm này triển khai tạo ra ttê mê chiếu xuất phát điểm từ 1 fragment cho activity sẽ khởi sản xuất nó, cùng triển khai một trong những bước trong quá trình khởi chế tác.

onCreate(): thực hiện khởi tạo fragment.

onCreateView(): tiến hành chế tạo ra giao diện(view), trả về view là giao diện file xml khớp ứng fragment. ko cần liên quan với activity vào hàm này chính vì activity chưa được khởi chế tạo không hề thiếu. Không yêu cầu tiến hành hàm này cùng với những fragment không tồn tại header.

onActivityCreated(): triển khai ngừng nốt bài toán khởi sản xuất activity với fragment. Trong công đoạn này bạn có thể call findViewById().

onStart(): thực hiện Việc hiển thị fragment lên screen.

onResume(): fragment chính thức chuyển động trọn vẹn.

onPause(): fragment bị tạm dừng hoạt động, nó vẫn có thể được bắt gặp.

onStop(): fragment bị ẩn.

Xem thêm: Tải Game Anh Hùng Trái Đất Miễn Phí, Cách Chơi Game Anh Hùng Trái Đất

onDestroyView(): giao diện(view) của fragment bị diệt. Nếu nó được điện thoại tư vấn quay lại, nó đã trở lại triển khai hàm onCreateView().

onDestroy(): bị bỏ.

onDetach(): bị diệt hoàn toàn.

Cách áp dụng Fragment.

Fragment gồm nhị loại chính là Frament tĩnh và Fragment động

A. Fragment tĩnh.

Static Fragment là loại fragment được knhị báo (định nghĩa) trực tiếp trong file XML của Activity.

Ví dụ ta bao gồm 2 static fragment là MyFragment1.java(fragment1.xml) và MyFragment2.java(fragment2.xml) .

Trong file activity_main.xml ta sẽ knhì báo nhân tố Fragment như sau:

Lưu ý: Thuộc tính class chỉ mang đến file Java khớp ứng. Bắt nên gồm thuộc tính android:id. Nếu ko sẽ gây ra lỗi.

Trong nhì class MyFragment1.java và MyFragment2.java phải kế thừa(extends ) lớp Fragment.

File MyFragment1

package com.sydneyowenson.com.aknosora.fragmentdemo;import app android.os.Bundle;import apk.support.annotation.Nullable;import apk.support.v4.tiện ích.Fragment;import android.view.LayoutInflater;import game android.view.View;import game android.view.ViewGroup;public class MyFragment1 extends Fragment
Nullable
Overridepublic View onCreateView(LayoutInflater inflater,
Nullable ViewGroup container,
Nullable Bundle savedInstanceState) super.onCreateView(inflater, container, savedInstanceState);View view = inflater.inflate(R.layout.fragment1, container, false);return view;File MyFragment2

package com.sydneyowenson.com.aknosora.fragmentdemo;import apk.os.Bundle;import app android.support.annotation.Nullable;import apk.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import apk.view.ViewGroup;public class MyFragment2 extends Fragment
Nullable
Override public View onCreateView(LayoutInflater inflater,
Nullable ViewGroup container,
Nullable Bundle savedInstanceState) super.onCreateView(inflater, container, savedInstanceState); View view = inflater.inflate(R.layout.fragment2, container, false); return view; File MainActivity

package com.sydneyowenson.com.aknosora.fragmentdemo;import android.tư vấn.v7.tiện ích.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity
Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); File Fragment1.xml

File Fragment2.xml

File main_activity.xml

Kết quả


*

Kết quả Lúc chạy


B. Fragment động

Lớp FragmentManager được cho phép thêm, xóa, thay thế sửa chữa fragment vào layout của activity. Sử dụng phương thức getFragmentManager() hoặc getSupportFragmentManager() để mang ra một đối tượng người dùng FragmentManagerViệc sửa thay đổi cần được triển khai vào một thanh toán trải qua lớp FragmentTransactionĐể làm như vậy, thường thì, chúng ta khái niệm một FrameLayout giữ vị trí trong tệp tin layout, kế tiếp dùng FragmentManager để ghi đè cổ một fragment vào FrameLayout duy trì khu vực đó

FragmentManager fm = getFragmentManager();// ThêmFragmentTransaction ft_add = fm.beginTransaction();ft_add.add(R.id.your_placehodler,new YourFragment());ft_add.commit();// Thay thếFragmentTransaction ft_rep = fm.beginTransaction();ft_rep.replace(R.id.your_placehodler, new YourFragment());ft_rep.commit();// Gỡ bỏFragment fragment = fm.findFragmentById(R.id.your_placehodler);FragmentTransaction ft_remo = fm.beginTransaction();ft_remo.remove(fragment);ft_remo.commit();Chú ý: Ta có thể thực hiện cách tiến hành addToBackStack() để trở lại fragment trước đó (giống hệt như undo).

File MainActivity.java

package com.sydneyowenson.com.akinosora.fragmentdemo;import app android.os.Bundle; import game android.support.v7.ứng dụng.AppCompatActivity; import game android.view.View; import game android.widget.Button;public class MainActivity extends AppCompatActivity Button btn; app android.tư vấn.v4.ứng dụng.FragmentManager fm;
Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main_activity);fm = getSupportFragmentManager();btn = (Button) findViewById(R.id.btn_add); btn.setOnClickListener(new View.OnClickListener()
Override public void onClick(View v) app android.support.v4.app.FragmentTransaction ft_add = fm.beginTransaction(); ft_add.add(R.id.frame_layout, new MyFragment1()); ft_add.commit(); ); File main_activity.xml

Kết trái khi dìm nút ít Add button thì Fragment1 sẽ tiến hành thêm vào.

Xem thêm: Enquiry Là Gì, Nghĩa Của Từ Enquiry, Nghĩa Của Từ Inquiry


*

Kết trái Fragment độngKết quả Fragment động


do đó tôi đã giới thiệu với chúng ta về Fragment cũng tương tự những thực hiện Fragment vào Android. Cảm ơn các bạn đã quan sát và theo dõi và hứa hẹn gặp lại chúng ta ở những bài tiếp theo.


Chuyên mục: Công Nghệ