ความแตกต่างระหว่างFragmentPagerAdapter
และFragmentStatePagerAdapter
คืออะไร?
เกี่ยวกับFragmentPagerAdapter
คำแนะนำของ Google พูดว่า:
เพจเจอร์รุ่นนี้เหมาะที่สุดสำหรับการใช้งานเมื่อมีชิ้นส่วนแบบสแตติกจำนวนหนึ่งที่จะถูกเพจผ่านเช่นกลุ่มแท็บ แฟรกเมนต์ของแต่ละหน้าที่ผู้ใช้เยี่ยมชมจะถูกเก็บไว้ในหน่วยความจำแม้ว่าลำดับชั้นการดูอาจถูกทำลายเมื่อมองไม่เห็น สิ่งนี้สามารถส่งผลในการใช้หน่วยความจำจำนวนมากเนื่องจากอินสแตนซ์ของแฟรกเมนต์สามารถคงอยู่ในสถานะที่กำหนดเองได้
FragmentStatePagerAdapter
สำหรับชุดขนาดใหญ่ของหน้าพิจารณา
และเกี่ยวกับFragmentStatePagerAdapter
:
เพจเจอร์รุ่นนี้มีประโยชน์มากกว่าเมื่อมีเพจจำนวนมากทำงานได้คล้ายกับมุมมองรายการ เมื่อผู้ใช้ไม่สามารถมองเห็นหน้าส่วนของพวกเขาทั้งหมดอาจถูกทำลายเพียงรักษาสถานะที่บันทึกของส่วนที่ สิ่งนี้ทำให้เพจเจอร์เก็บหน่วยความจำน้อยลงที่เกี่ยวข้องกับเพจที่เยี่ยมชมแต่ละเพจเมื่อเปรียบเทียบกับ
FragmentPagerAdapter
ค่าใช้จ่ายที่อาจมีค่าใช้จ่ายมากกว่าเมื่อสลับระหว่างเพจ
ดังนั้นฉันมีเพียง 3 ชิ้น แต่ทั้งหมดเป็นโมดูลแยกต่างหากที่มีข้อมูลจำนวนมาก
Fragment1
จัดการข้อมูลบางส่วน (ซึ่งผู้ใช้ป้อน) และผ่านทางกิจกรรมเข้าซึ่งเป็นเพียงง่ายๆFragment2
นอกจากนี้ยังมีListFragment
Fragment3
ListFragment
ดังนั้นคำถามของฉันคือ : ฉันควรใช้อะแดปเตอร์ใด FragmentPagerAdapter
หรือFragmentStatePagerAdapter
?
FragmentPagerAdapter
และFragmentStatePagerAdapter
แต่คือFragmentStateAdapter
อะไร