อะไรคือความแตกต่างระหว่างandroid.app.Fragment
และandroid.support.v4.app.Fragment
และอะไรคือสถานการณ์ที่แต่ละคนควรใช้
อะไรคือความแตกต่างระหว่างandroid.app.Fragment
และandroid.support.v4.app.Fragment
และอะไรคือสถานการณ์ที่แต่ละคนควรใช้
คำตอบ:
android.support.v4.app.Fragment
เป็นคลาสFragmentในไลบรารีการสนับสนุน android ซึ่งเป็นแพ็คเกจความเข้ากันได้ที่ช่วยให้คุณใช้คุณสมบัติใหม่ของ Android บน Android เวอร์ชันเก่า
android.app.Fragment
เป็นคลาสFragmentใน Android SDK เปิดตัวใน Android 3 (API 11)
หากคุณต้องการที่จะทำให้คุณใช้งานแอพพลิเคเศษและต้องการที่จะกำหนดเป้าหมายอุปกรณ์ก่อน API 11 android.support.v4.app.Fragment
คุณต้องใช้ แต่ถ้าคุณเท่านั้นอุปกรณ์ที่ใช้ API 11 android.app.Fragment
หรือสูงกว่ากำหนดเป้าหมายคุณสามารถใช้
แก้ไข: android.app.Fragment
ขณะนี้ระบบปฏิบัติการเลิกใช้แล้ว (ณ ระดับ API 28) และทุกคนควรย้ายไปใช้การใช้งานไลบรารีสนับสนุน
ตั้งแต่ 2018:
จากandroid.app.Fragment
เอกสาร :
คลาสนี้เลิกใช้แล้วใน API ระดับ 28
ใช้ไลบรารีการสนับสนุนFragment
สำหรับการทำงานที่สอดคล้องกันในทุกอุปกรณ์และเข้าถึง Lifecycle
ดังนั้นandroid.support.v4.app.Fragment
ควรใช้แฟรกเมนต์สนับสนุน ( ) ทุกหนทุกแห่งแทนที่จะเป็นแฟรกเมนต์ดั้งเดิม ( android.app.Fragment
) ทันที
android.app.Fragment
เลิกเรียน API ระดับ 28 จะมีทางเลือกวิธีทดแทนที่รุนแรง มีวิธีการส่งต่อหรือย้อนกลับนี้เข้ากันได้android.support.v4.app.Fragment
กับวิธีการที่เหมาะสมหรือไม่
ฉันใช้android.support.v4.app.Fragment
เฉพาะ
แอพทั้งหมดที่ฉันเขียนต้องรองรับกลับไปเป็น Android 2.3 และเป็นวิธีที่ง่ายที่สุดในการทำ
หากคุณสนับสนุน 11+ ให้ทำandroid.app.Fragment
ตาม
หากแอปพลิเคชันของคุณกำหนดเป้าหมายสำหรับ API 11 ขึ้นไปคุณสามารถใช้android.app.Fragment
และไฟล์ APK ของคุณจะเล็กลง
หรือเพิ่มandroid.support.v4.app.Fragment
ไลบรารีลงในโครงการของคุณเพื่อรองรับ Android API เวอร์ชันเก่า (Android 3.x)
android.support.v4.app.Fragment
เป็นไลบรารีที่คุณสามารถใช้เพื่อรับความเข้ากันได้ย้อนหลังสำหรับ API เวอร์ชันเก่ากว่า
มีการเพิ่มแฟรกเมนต์ใน API ระดับ 11 (พร้อมด้วยคุณสมบัติอื่น ๆ ) คุณควรรวมไลบรารีนั้นเพื่อขยายฟังก์ชันเหล่านั้นไปยังอุปกรณ์ pre-API 11 นั่นเป็นห้องสมุดที่มีประโยชน์และฉันขอแนะนำให้ดูที่ ActionBarSherlock ซึ่งขยายแถบการดำเนินการไปยังอุปกรณ์ pre-API v11
หากแอปพลิเคชันของคุณกำหนดเป้าหมายสำหรับ API 11 หรือสูงกว่าคุณสามารถใช้ android.app.Fragment และจะลดขนาด APK มิฉะนั้นให้ใช้ android.support.v4.app.Fragment