Sử dụng fragment trong android. Đây là một thành phần khá quan trọng. Nó khá giống activity. nó cũng có vòng đời của mình. và có thể hiểu được là 1 sub-activity.. Rất quan trọng trong thay đổi của android sau này * Tuy nhiên theo cá nhân nó là con dao 2 lưỡi trong nếu bạn không hiểu đc quản trị cách thay đổi. hay khai tử cái fragment đó. đặt 1 ví dụ : - Khi fragment 1 gọi fragment theo nguyên lý mình sẽ khải tử fragment 1.. và fragment 1 vừa vào sẽ load 1 cái data nào đó từ fragment 2 mình OnBackPress về fragment 1 tham số bị mất => Crash - Khi không khai tử Old Fragment thì nhiều Fragment sẽ xếp chồng lên nhau.. load dữ liệu theo ngữ nghĩa của sub-activity thì bạn hiểu rổi đó cái gì nó quá nhiều thì tràn bộ nhớ.. - Nên khi sử dụng nắm rõ nguyên lý hoạt động của nó. 1. Fragment là gì ?... Một số khái niệm cơ bản Trong các ứng dụng android, tại một thời điểm, chỉ có một Activity được hiển thị duy nhất trên màn hình. Chúng ta muốn chia màn hình ra nhiều phần để dễ sử dụng thì fragment đáp ứng điều đó Fragment là một thành phần android độc lập, được sử dụng bởi một activity, nó là một sub-activity. Fragment có vòng đời và giao diện riêng. Các Fragment thường có một file java đi kèm với file giao diện xml. Các fragment không có file giao diện xml thường được gọi là headless fragments. Fragment sử dụng phương thức getActivity() để lấy ra Activity cha. Sẽ biết activity nào đang sử dụng nó. Fragment được định nghĩa trong file xml của activity (static definition) hoặc có thể sửa đổi fragment khi đang chạy (dynamic definition) 2. Vòng đời vủa một Fragment onAttach(): hàm này thực hiện tạo tham chiếu từ một fragment đến activity đã khởi tạo nó, và thực hiện một số bước trong quá trình khởi tạo onCreate(): thực hiện khởi tạo fragment onCreateView(): thực hiện tạo giao diện(view), trả về view là giao diện file xml tương ứng fragment. ko nên tương tác với activity trong hàm này bởi vì activity chưa được khởi tạo đầy đủ. Không cần thực hiện hàm này với các fragment không có header onActivityCreated(): thực hiện hoàn thành nốt việc khởi tạo activity và fragment. Trong bước này chúng ta có thể gọi findViewById() onStart(): thực hiện việc hiển thị fragment lên màn hình onResume(): fragment chính thức hoạt động hoàn toàn onPause(): fragment bị tạm dừng hoạt động, nó vẫn có thể được nhìn thấy onStop(): fragment bị ẩn onDestroyView(): giao diện(view) của fragment bị hủy. Nếu nó được gọi quay lại, nó sẽ quay trở lại thực hiện hàm onCreateView() onDestroy(): bị hủy onDetach(): bị hủy hoàn toàn