Android – Đoạn code (Fragments)



Fragment là một phần của Activity giúp thiết kế Activity linh động hơn. Có thể xem Fragment là một sub-Activity.

Sau đây là một số điểm quan trọng về Fragment:

  • Một Fragment có layout và những hành vi của riêng nó với các phương thức callback trong vòng đời của riêng nó.
  • Bạn có thể thêm hoặc xóa Fragment trong Activity khi Activity đang chạy.
  • Bạn có thể kết hợp nhiều Fragment trong một Activity để xây dựng giao diện đa tiến trình.
  • Một Fragment có thể được sử dụng trong nhiều Activity.
  • Vòng đời của Fragment gần như giống vời Activity chứa nó, vì khi Activity tạm dừng hoạt động thì tất cả các Fragment của nó đều bị dừng hoạt động.
  • Một Fragment có thể thực hiện các hành vi không cần các thành phần giao diện người dùng.
  • Fragments được thêm vào Android API ở phiên bản Honeycomb, tương đương Android API ở phiên bản 11.

Bạn tạo Fragment bằng cách kế thừa lớp Fragment và bạn có thể thêm Fragment vào layout của Activity bằng cách khai báo nó trong tập tin layout của Activity với thẻ <fragment>.

Chúng ta sẽ xem xét ví dụ sau để hiểu thêm về sự hữu dụng của Fragment trong việc thiết kế giao diện cho ứng dụng Android. Như hình ảnh bên dưới, giao diện người dùng được thiết kết từ 2 Fragment A và B. Vì kích thước màn hình của máy tính bảng rộng nên đủ chỗ cho 2 Fragment này, chúng ta chỉ cần 1 Activity A. Trong khi đó, màn hình điện thoại chỉ có thể hiển thị hoặc Fragment A hoặc Fragment B nên ta cần Activity A chứa Fragment A, Activity B chứa Fragment B.

android_fragments

Vòng đời Fragment

Android Fragment có vòng đời của riêng nó, cũng khá giống với vòng đời của Activity:

fragment

Vòng đời Fragment

Sau đây là các phương thức bạn có thể ghi đè (override) trong lớp Fragment của mình:

  • onAttach(): Hệ thống gọi phương thức này khi Fragment được liên kết với một Activity.
  • onCreate(): Hệ thống gọi phương thức này khi tạo Fragment. Bạn nên khởi tạo các thành phần cần thiết của Fragment cái mà bạn muốn retain khi Fragment hoạt động lại sau khi nó bị tạm dừng hoặc bị dừng.
  • onCreateView(): Hệ thống gọi phương thức này khi giao diện người dùng được vẽ lần đầu tiên. Để vẽ giao diện của Fragment, bạn phải trả lại một Component View từ phương thức gốc của layout của Fragment. Bạn có thể trả về null nếu Fragment không chứa giao diện.
  • onActivityCreated(): Phương thức onActivityCreated() được gọi sau phương thức onCreateView() khi Activity chủ được tạo. Activity and Fragment đã được tạo, view có thể được truy cập với phương thức findViewById().
  • onStart(): Phương thức onStart() được gọi 1 lần khi Fragment hiện ra trên màn hình.
  • onResume(): Fragment được kích hoạt trở lại.
  • onPause(): Hệ thống gọi phương thức này khi nó nhận thấy người dùng rời khỏi Fragment.
  • onStop(): Fragment sắp bị dừng hoạt động.
  • onDestroyView(): View của Fragment sẽ bị xóa.
  • onDestroy(): Bước cuối cùng để xóa sạch Fragment. Platform Android không bảo đảm là sẽ gọi phương thức này.

Dùng Fragment như thế nào?

Sau đây là các bước đơn giản để tạo Fragment.

  • Đầu tiên, hãy quyết định có bao nhiêu Fragment bạn muốn dùng trong một Activity. Ví dụ chúng ta sẽ dùng 2 Fragment để biểu diễn giao diện ở chế độ màn hình ngang và đứng.
  • Kế đến, dựa vào số lượng Fragment, tạo các lớp kế thừa từ lớp Fragment. Bạn có thể override bất kỳ phương thức callback nào để ứng dụng hoạt động theo ý mình.
  • Tương ứng với từng Fragment, bạn sẽ cần tạo tập tin layout XML để biểu diễn giao diện của Fragment.
  • Cuối cùng chỉnh sửa tập tin Activity để xác định logic thay thế Fragment theo ý muốn.

Các loại Fragments

Về cơ bản, Fragment được chia ra làm 3 loại:

  • Single frame fragments − Được sử dụng cho thiết bị cầm tay, chúng ta chỉ có thể hiển thị một Fragment như 1 View.
  • List fragments − Fragment có chứa List View.
  • Fragments transaction − Được dùng trong việc chuyển đổi Fragment, trong đó bạn có thể chuyển một Fragment thành Fragment khác.

Chúng ta sẽ tìm hiểu rõ hơn về từng loại Fragment trong phần Các ví dụ hữu ích.

804 Total Views 2 Views Today