อะไรคือความแตกต่างระหว่าง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()ViewonCreateView()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 ()
ข้อมูลรายละเอียดสามารถดูได้ที่นี่