Sự khác biệt giữa onCreate()
, onCreateView()
và onActivityCreated()
trong các mảnh và mỗi cái chúng sẽ được sử dụng để làm gì?
Sự khác biệt giữa onCreate()
, onCreateView()
và onActivityCreated()
trong các mảnh và mỗi cái chúng sẽ được sử dụng để làm gì?
Câu trả lời:
onCreate ():
Các onCreate()
phương pháp trong một Fragment
được gọi sau khi Activity
'sonAttachFragment()
nhưng trước đó Fragment
' s onCreateView()
.
Trong phương pháp này, bạn có thể gán các biến, nhận các Intent
tính năng bổ sung và bất kỳ thứ gì khác không liên quan đến hệ thống phân cấp Chế độ xem (nghĩa là khởi tạo phi đồ họa). Điều này là do phương pháp này có thể được gọi khi Activity
's onCreate()
là chưa kết thúc, và do đó cố gắng truy cập vào hệ thống phân cấp Xem ở đây có thể dẫn đến một vụ tai nạn.
onCreateView ():
Sau khi onCreate()
được gọi (trong Fragment
), Fragment
's onCreateView()
được gọi. Bạn có thể chỉ định các View
biến của mình và thực hiện bất kỳ khởi tạo đồ họa nào . Bạn sẽ trả về một View
từ phương thức này và đây là chế độ xem UI chính, nhưng nếu bạn Fragment
không sử dụng bất kỳ bố cục hoặc đồ họa nào, bạn có thể quay lại null
(xảy ra theo mặc định nếu bạn không ghi đè).
onActivityCreated ():
Theo các tiểu bang tên, điều này được gọi sau khi Activity
's onCreate()
đã hoàn thành . Nó được gọi sau onCreateView()
và chủ yếu được sử dụng cho các lần khởi tạo cuối cùng (ví dụ: sửa đổi các thành phần UI).
Tóm lại ...
tất cả chúng đều được gọi trong Fragment
nhưng được gọi vào những thời điểm khác nhau.
Cái onCreate()
này được gọi đầu tiên, để thực hiện bất kỳ khởi tạo phi đồ họa nào. Tiếp theo, bạn có thể gán và khai báo bất kỳ View
biến nào bạn muốn sử dụng onCreateView()
. Sau đó, sử dụng onActivityCreated()
để thực hiện bất kỳ khởi tạo cuối cùng nào bạn muốn làm sau khi mọi thứ đã hoàn thành.
Nếu bạn muốn xem tài liệu chính thức của Android, bạn có thể tìm thấy ở đây:
-
-
-onCreate()
onCreateView()
onActivityCreated()
Ngoài ra còn có một số câu hỏi / câu trả lời hơi khác, nhưng kém phát triển hơn ở đây trên Stack Overflow:
onCreateView
.
Đối với bất cứ ai đang tìm kiếm một câu trả lời súc tích, bằng hình ảnh:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
Và,
onActivityCreated()
hiện không được chấp nhận là Fragment Phiên bản 1.3.0-alpha02
Phương thức onActivityCreated () hiện không được dùng nữa. Mã chạm vào khung nhìn của đoạn nên được thực hiện trong onViewCreated () (được gọi ngay trước onActivityCreated ()) và mã khởi tạo khác phải ở trong onCreate (). Để nhận được một cuộc gọi lại cụ thể khi onCreate () của hoạt động hoàn tất, LifeCyclObserver phải được đăng ký trên Vòng đời của hoạt động trong onAttach () và xóa sau khi nhận được cuộc gọi lại onCreate ().
Thông tin chi tiết có thể được tìm thấy ở đây