Fragment là thành phần UI tái sử dụng có vòng đời riêng, sống bên trong Activity (hoặc Fragment khác) — dùng để chia UI thành phần nhỏ và hỗ trợ layout đa kích thước (điện thoại/tablet).
Khác biệt chính:
- Fragment có thêm các callback quanh View: onCreateView() (tạo view), onViewCreated(), onDestroyView() — vì view của fragment có thể bị hủy trong khi instance fragment vẫn sống (ví dụ khi vào back stack).
- Vì vậy phải phân biệt vòng đời của fragment và vòng đời của view fragment; nên quan sát dữ liệu bằng viewLifecycleOwner để tránh rò rỉ.
- Fragment gắn/ tách qua onAttach()/onDetach() và được quản lý bởi FragmentManager.
Hay hỏi: vì sao dùng viewLifecycleOwner thay vì this khi observe LiveData trong Fragment.