อะไรคือความแตกต่างระหว่างonCreate()
, onCreateView()
และonActivityCreated()
ในชิ้นส่วนและสิ่งที่พวกเขาแต่ละคนจะนำมาใช้สำหรับ?
อะไรคือความแตกต่างระหว่างonCreate()
, onCreateView()
และonActivityCreated()
ในชิ้นส่วนและสิ่งที่พวกเขาแต่ละคนจะนำมาใช้สำหรับ?
คำตอบ:
onCreate ():
onCreate()
วิธีการในFragment
จะเรียกว่าหลังจากที่Activity
'sonAttachFragment()
แต่ก่อนที่Fragment
' onCreateView()
s
ในวิธีนี้คุณสามารถกำหนดตัวแปรรับIntent
สิ่งพิเศษและสิ่งอื่น ๆ ที่ไม่เกี่ยวข้องกับลำดับชั้นการดู (เช่นการเริ่มต้นที่ไม่ใช่กราฟิก) เพราะนี่คือวิธีการนี้สามารถเรียกได้ว่าเมื่อActivity
's onCreate()
ยังไม่เสร็จสิ้นและอื่น ๆ พยายามที่จะเข้าถึงดูลำดับชั้นของที่นี่อาจส่งผลให้เกิดความผิดพลาด
onCreateView ():
หลังจากที่onCreate()
เรียกว่า (ในFragment
) ที่Fragment
's onCreateView()
เรียกว่า คุณสามารถกำหนดของView
ตัวแปรและทำ initialisations คุณคาดว่าจะส่งคืนView
จากวิธีนี้และนี่คือมุมมอง UI หลัก แต่หากคุณFragment
ไม่ได้ใช้เลย์เอาต์หรือกราฟิกใด ๆ คุณสามารถส่งคืนได้null
(โดยค่าเริ่มต้นหากคุณไม่ได้แทนที่)
onActivityCreated ():
ฐานะที่เป็นรัฐชื่อนี้จะเรียกว่าหลังจากที่Activity
'sonCreate()
ได้เสร็จสิ้น มันถูกเรียกหลังจากonCreateView()
และส่วนใหญ่จะใช้สำหรับการเริ่มต้นขั้นสุดท้าย (ตัวอย่างเช่นการแก้ไของค์ประกอบ UI)
เพื่อสรุป ...
... พวกเขาทั้งหมดถูกเรียกในFragment
แต่ถูกเรียกในเวลาที่ต่างกัน จะเรียกว่าเป็นครั้งแรกสำหรับการทำ initialisations กราฟิกที่ไม่ใช่ใด ๆ ถัดไปคุณสามารถกำหนดและประกาศใด ๆตัวแปรที่คุณต้องการที่จะใช้ในการ หลังจากนั้นให้ใช้onCreate()
View
onCreateView()
onActivityCreated()
ในการทำ initialisation ขั้นสุดท้ายที่คุณต้องการทำเมื่อทุกอย่างเสร็จสมบูรณ์
หากคุณต้องการดูเอกสาร Android อย่างเป็นทางการสามารถดูได้ที่นี่:
-
-
-onCreate()
onCreateView()
onActivityCreated()
นอกจากนี้ยังมีข้อแตกต่างกันเล็กน้อย แต่มีคำถาม / คำตอบที่พัฒนาแล้วน้อยลงที่ Stack overflow:
onCreateView
เข้าถึงลำดับชั้นดูเป็นจุดประสงค์ที่แท้จริงของ
สำหรับทุกคนที่กำลังมองหาคำตอบที่กระชับรูปภาพ:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
และ,
onActivityCreated()
เลิกใช้แล้วในขณะนี้เป็น Fragments Version 1.3.0-alpha02
เมธอด onActivityCreated () เลิกใช้แล้ว โค้ดที่สัมผัสมุมมองของแฟรกเมนต์ควรทำใน onViewCreated () (ซึ่งถูกเรียกใช้ทันทีก่อน onActivityCreated ()) และโค้ดการเริ่มต้นอื่น ๆ ควรอยู่ใน ในการรับการเรียกกลับเฉพาะเมื่อ onCreate () ของกิจกรรมเสร็จสิ้น LifeCycleObserver ควรลงทะเบียนกับ Lifecycle ของกิจกรรมใน onAttach () และลบออกเมื่อได้รับการเรียกกลับ onCreate ()
ข้อมูลรายละเอียดสามารถดูได้ที่นี่