[Android] Bài 30: Fragment Lifecycle & multiple screen

Thảo luận trong 'Android' bắt đầu bởi hieu, 5/4/18.

  1. hieu

    hieu Administrator Thành viên BQT

    Tham gia ngày:
    20/3/18
    Bài viết:
    40
    Đã được thích:
    29
    Điểm thành tích:
    18
    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

    detach.PNG
    • 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
     
    Chỉnh sửa cuối: 7/4/18

Chia sẻ trang này

XenForo Add-ons by Brivium ™ © 2012-2013 Brivium LLC.