อะไรคือความแตกต่างระหว่าง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