Android - Fragment - Tìm hiểu về Fragment trong Android

1. Khái niệm về Fragment

Fragment được giới thiệu từ Android 3.0(Api 11) chủ yếu nhằm hỗ trợ thiết kế UI động và linh hoạt trên màn hình lớn như máy tính bảng, ta có thể bố trí các thành phần UI của một Activity thành các phân đoạn - Fragment khác nhau để dễ dàng quản lý.

Fragment biểu diễn cho một hành vi hay một phần giao diện người dùng trong Activity.Fragment rất hữu ích trong việc thiết kết giao diện UI với nhiều thành phần khác nhau, hoặc một thành phần giao diện UI được sử dụng trong nhiều Activity.Một fragment cũng có vòng đời riêng của nó.

Vòng đời của Fragment bị ảnh hưởng trực tiếp từ Activity chứa nó. Activity có thể thêm hoặc xóa Fragment khi đang hoạt động.

Khi thêm một Fragment vào trong Activity, nó sẽ nằm trong một ViewGroup, để thêm fragment ta có thể sử dụng thẻ <fragment> trong xml hoặc thêm trong java code.

Không bắt buộc Fragment phải được thêm vào một Activity, ta vẫn có thể sử dụng Fragment  như một hoạt động vô hình.

2. Sử dụng Fragment


Để tạo một phân đoạn, bạn phải tạo một lớp con của Fragment (hoặc một lớp con hiện tại của nó). Lớp Fragment có mã trông rất giống một Activity. Nó chứa các phương pháp gọi lại tương tự như hoạt động, chẳng hạn như onCreate(), onStart(), onPause(), và onStop(). Trên thực tế, nếu bạn đang chuyển đổi một ứng dụng Android hiện tại để sử dụng các phân đoạn, bạn có thể chỉ cần di chuyển mã khỏi các phương pháp gọi lại của hoạt động của bạn vào các phương pháp gọi lại tương ứng của phân đoạn của bạn.

Thường thì ít nhất bạn nên triển khai các phương pháp vòng đời sau:

onCreate()
Hệ thống sẽ gọi phương pháp này khi tạo phân đoạn. Trong triển khai của mình, bạn nên khởi tạo các thành phần thiết yếu của phân đoạn mà bạn muốn giữ lại khi phân đoạn bị tạm dừng hoặc dừng hẳn, sau đó tiếp tục.

onCreateView()
Hệ thống sẽ gọi phương pháp này khi đến lúc phân đoạn vẽ giao diện người dùng của nó lần đầu tiên. Để vẽ một UI cho phân đoạn của mình, bạn phải trả về một View từ phương pháp này, đây là gốc của bố trí phân đoạn của bạn. Bạn có thể trả về giá trị rỗng nếu phân đoạn không cung cấp UI.

onPause()
Hệ thống gọi phương pháp này là dấu hiệu đầu tiên về việc người dùng đang rời khỏi phân đoạn (mặc dù không phải lúc nào cũng có nghĩa rằng phân đoạn đang bị hủy). Trường hợp này thường là khi bạn định thực hiện bất kỳ thay đổi nào vẫn cần có hiệu lực ngoài phiên của người dùng hiện thời (vì người dùng có thể không quay lại).

Phần lớn ứng dụng nên triển khai ít nhất ba phương pháp sau đối với mọi phân đoạn, nhưng có một vài phương pháp gọi lại khác mà bạn cũng nên sử dụng để xử lý các giai đoạn khác nhau trong vòng đời của phân đoạn.

Cũng có một vài lớp con mà bạn có thể muốn mở rộng thay vì lớp cơ bản Fragment:

DialogFragment
Hiển thị một hộp thoại trôi nổi. Sử dụng lớp này để tạo một hộp thoại là một phương án hay cho việc sử dụng các phương pháp trình trợ giúp hộp thoại trong lớp Activity, vì bạn có thể kết hợp một hộp thoại phân đoạn vào ngăn xếp của các phân đoạn được quản lý bởi hoạt động, cho phép người dùng trả về một phân đoạn bị bỏ.

ListFragment
Hiển thị một danh sách các mục được quản lý bởi một trình điều hợp (chẳng hạn như một SimpleCursorAdapter), tương tự như ListActivity. Nó cung cấp một vài phương pháp để quản lý một dạng xem danh sách, chẳng hạn như phương pháp gọi lại onListItemClick() để xử lý các sự kiện nhấp.

PreferenceFragment
Hiển thị một phân cấp các đối tượng Preference dưới dạng một danh sách, tương tự như PreferenceActivity. Điều này hữu ích khi tạo một hoạt động "thiết đặt" cho ứng dụng của bạn

3. Triển khai Fragment trên Android Studio

Để cung cấp một bố trí cho một phân đoạn, bạn phải triển khai phương pháp gọi lại onCreateView(), phương pháp này được hệ thống Android gọi khi đến lúc phân đoạn vẽ bố trí của nó. Việc bạn triển khai phương pháp này phải trả về một View là phần gốc cho bố trí phân đoạn của bạn.

Để thực hiện giao tác phân đoạn trong hoạt động của mình (chẳng hạn như thêm, gỡ bỏ, hay thay thế một phân đoạn), bạn phải sử dụng các API từ FragmentTransaction. Bạn có thể nhận một thực thể của FragmentTransaction từ Activity của mình như sau:
FragmentManager fragmentManager = getFragmentManager()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction()
Sau đó, bạn có thể thêm một phân đoạn bằng cách sử dụng phương pháp add(), chỉ định phân đoạn sẽ thêm và dạng xem mà bạn sẽ chèn nó vào. Ví dụ:
ExampleFragment fragment = new ExampleFragment();
fragmentTransaction.add(R.id.fragment_container, fragment);
fragmentTransaction.commit();

Tham đối đầu tiên được chuyển cho add()ViewGroup, là nơi mà phân đoạn sẽ được đặt vào, được chỉ định bởi ID tài nguyên, và tham đối thứ hai là phân đoạn cần thêm.

Sau khi bạn đã thực hiện các thay đổi của mình bằng FragmentTransaction, bạn phải gọi commit() để các thay đổi có hiệu lực.

4. Quản lý Fragment

https://developer.android.com/guide/components/fragments.html#Managing




Còn tiếp













Nhận xét

Đăng nhận xét

Bài đăng phổ biến từ blog này

Android - Date Time - Lấy giá trị ngày, giờ theo định dạng tùy biến trong Android Studio

Android - Custom SearchView - Tạo khung tìm kiếm đơn giản trong Android Studio

Android - Image - Take Photo, Choose Photo from Gallery - Xử lý chụp ảnh, lấy ảnh trong Android Studio