Fragment trong Android



Fragment là một phần của một Activity để cho phép thiết kế activity có tính mô-đun. Nó sẽ không sai nếu chúng ta nói rằng một Fragment là một loại sub-activity.

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

  • Fragment cũng có layout của riêng của nó, cũng có các hành vi và vòng đời riêng.

  • Chúng ta có thể thêm hoặc xóa Fragment trong một Activity trong khi Activity này đang chạy.

  • Có thể kết hợp nhiều Fragment trong một Activity để xây dựng giao diện người dùng đa khung.

  • Một Fragment có thể được sử dụng trong nhiều Activitiy.

  • Vòng đời của Fragment có quan hệ chặt chẽ với vòng đời của Activity đang dùng nó, nghĩa là khi Activity bị tạm dừng thì các Fragment sẽ dừng lại.

  • Fragment có thể thực hiện một hành vi mà không có trong thành phần giao diện người dùng.

  • Fragment được thêm vào API 11 trở lên.

Bạn có thể tạo các Fragments bằng cách kế thừa lớp Fragment và bạn có thể chèn Fragment vào layout bởi thẻ <fragment> .

Trước khi giới thiệu về Fragment, thì có một hạn chế là tại cùng một thời điểm đã cho chúng ta chỉ có thể hiển thị một Activity duy nhất trên màn hình. Vì thế chúng ta không thể chia màn hình thiết bị ra thành nhiều phần và kiểm soát các thành phần khác nhau này một cách riêng biệt. Nhưng với Fragment thì màn hình được linh hoạt hơn, xóa bỏ việc chỉ có duy nhất 1 Activity trên màn hình tại một thời điểm. Bây giờ chúng ta cũng chỉ có một Activity duy nhất nhưng Activity này có thể chứa nhiều Fragment với đầy đủ layout, event, và lifecycle.

Dưới đây là một ví dụ cụ thể về sử dụng Fragment. Thiết bị máy tính bảng với màn hình lớn thì một Activity có thể chứa 2 Fragment, còn thiết bị cầm tay với màn hình nhỏ thì có thể có 2 Activities với mỗi Activity là một Fragment.

Android Fragment
Quảng cáo

Ứng dụng có thể nhúng hai Fragment trong Activity A, khi đang chạy trên một thiết bị máy tính bảng có kích cỡ cố định. Tuy nhiên, trên một màn hình cố định của thiết bị cầm tay, thì không đủ chỗ cho cả hai Fragment này, vì thế Activity A chỉ có thể bao gồm Fragment chứa danh sách các article, và khi người dùng chọn một article, nó bắt đầu Activity B chứa Fragment thứ hai để đọc article đó.

Vòng đời của Fragment trong Android

Fragment trong Android có vòng đời riêng của nó, tương tự như một Activity trong Android. Sơ đồ sau miêu tả ngắn gọn các giai đoạn trong vòng đời của Fragment.

Fragment

Fragment lifecycle

Dưới đây là danh sách các phương thức bạn có thể ghi đè trong lớp Fragment: −

  • onAttach()Sự thể hiện (instance) của Fragment được gắn kết với một sự thể hiện của activity. Fragment và Activity không hoàn toàn được khởi tạo. Đặc biệt khi bạn lấy trong phương thức này một tham chiếu tới activity mà sử dụng Fragment cho công việc khởi tạo xa hơn.

  • 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ơ bản của Fragment mà bạn muốn duy trì khi Fragment bị dừng hoặc tạm dừng, sau đó được phục hồi lại.

  • onCreateView() Hệ thống gọi phương này khi cần Fragment đó để vẽ giao diện UI lần đầu tiên. Để vẽ một UI cho Fragment của bạn, bạn phải trả về một thành phần View từ phương thức này. Đó là root của layout. Bạn có thể trả về null nếu Fragment không cung cấp một giao diện UI.

  • onActivityCreated()Được gọi sau phương thức onCreateView() khi host activity được tạo. Sự thể hiện của Activity và Fragment đã được tạo cùng với cấu trúc view của activity đó. Tại điểm này, View có thể được truy cập với phương thức findViewById(). Ví dụ, trong phương thức này bạn có thể khởi tạo các đối tượng mà cần một đối tượng Context.

  • onStart()

  • onResume()Fragment hoạt động.

  • onPause() Hệ thống gọi phương thức này khi có dấu hiệu chỉ rằng người dùng đang rời khỏi Fragment này.

  • onStop()Fragment đang bị dừng bằng cách gọi phương thức này.

  • onDestroyView()Fragment view sẽ hủy sau khi gọi phương thức này.

  • onDestroy()Được gọi để xóa trạng thái của Fragment.

Cách sử dụng Fragment trong Android

Bạn theo các bước đơn giản sau để tạo các Fragment:

  • Đầu tiên bạn phải quyết định xem có bao nhiêu Fragment bạn muốn sử dụng trong một Activity. Ví dụ, nếu chúng ta muốn hai Fragment để xử lý các chế độ Landscape và Portrait của thiết bị.

  • Tiếp theo dựa vào số Fragment, tạo các lớp mà kế thừa từ lớp Fragment. Lớp Fragment này có các hàm callback đã đề cập ở trên. Bạn có thể ghi đè bất cứ hàm nào tùy theo yêu cầu.

  • Tương ứng với mỗi Fragment, bạn sẽ cần tạo các layout file trong XML file. Các file này có layout cho các Fragment đã định nghĩa trước đó.

  • Sửa đổi activity file để xác định vị trí hợp lý cho các Fragment theo yêu cầu.

Các loại Fragment trong Android

Quảng cáo

Về cơ bản, các Fragment được chia thành 3 loại sau:

  • Single Fragment: − được sử dụng cho các thiết bị cầm tay như mobile, ở đây chúng ta chỉ có thể hiển thị một Fragment như là một View.

  • List fragment − : có các list view đặc biệt.

  • Fragment transaction − Chúng ta có thể di chuyển từ một Fragment sang Fragment khác.

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.




Tài liệu giáo viên