คู่มือฟีเจอร์ของไลบรารีการสนับสนุน

หมายเหตุ: การเปิดตัว Android 9.0 (API ระดับ 28) มาพร้อมกับ ไลบรารีการสนับสนุนเวอร์ชันใหม่ที่ชื่อ AndroidX ซึ่งเป็นส่วนหนึ่งของ Jetpack ไลบรารี AndroidX มีไลบรารีการสนับสนุนที่มีอยู่และยังมีคอมโพเนนต์ Jetpack ล่าสุดด้วย

คุณสามารถใช้ไลบรารีการสนับสนุนต่อไปได้ อาร์ติแฟกต์ย้อนหลัง (เวอร์ชัน 27 และก่อนหน้า รวมถึงที่แพ็กเกจเป็น android.support.*) จะยังคงพร้อมให้บริการใน Google Maven อย่างไรก็ตาม การพัฒนาไลบรารีใหม่ทั้งหมด จะเกิดขึ้นในไลบรารี AndroidX

เราขอแนะนำให้ใช้ไลบรารี AndroidX ในโปรเจ็กต์ใหม่ทั้งหมด นอกจากนี้ คุณควรพิจารณาย้ายข้อมูลโปรเจ็กต์ที่มีอยู่ไปยัง AndroidX ด้วย

ไลบรารีการสนับสนุนมีคลาสมากมายสำหรับการสร้างแอป ตั้งแต่ คอมโพเนนต์แอปพื้นฐาน ไปจนถึงวิดเจ็ตอินเทอร์เฟซผู้ใช้ การจัดการสื่อ และ คอมโพเนนต์แอปทีวี คลาสหลายรายการเป็นการใช้งานที่เข้ากันได้แบบย้อนหลัง แต่บางรายการก็เป็นฟีเจอร์ใหม่ในตัวของมันเอง

เอกสารนี้ให้ภาพรวมของหมวดหมู่ฟีเจอร์ที่สำคัญ ซึ่งมีอยู่ในคลังการสนับสนุน และคลาสที่เฉพาะเจาะจงที่คุณควรรู้ เมื่อสร้างแอป

ดูข้อมูลเกี่ยวกับวิธีเพิ่มโค้ดไลบรารีการสนับสนุนลงในโปรเจ็กต์การพัฒนาแอป ได้ที่การตั้งค่า ไลบรารีการสนับสนุน ดูข้อมูลเกี่ยวกับวิธีรวมแพ็กเกจไลบรารีการสนับสนุน ที่เฉพาะเจาะจงไว้ในโปรเจ็กต์ได้ที่ แพ็กเกจไลบรารีการสนับสนุน

คอมโพเนนต์ของแอป

คลาสในไลบรารีการสนับสนุนเหล่านี้มีการใช้งานที่เข้ากันได้แบบย้อนหลังสำหรับ ฟีเจอร์หลักที่สำคัญของแพลตฟอร์ม โดยปกติแล้วการติดตั้งใช้งานเหล่านี้จะขยาย คลาสเวอร์ชันก่อนหน้าเพื่อรองรับเมธอดและฟีเจอร์ใหม่ๆ ที่เพิ่มเข้ามาใน แพลตฟอร์มเวอร์ชันล่าสุด คลาสบางคลาสเหล่านี้เป็นคลาสที่สมบูรณ์ การใช้งานแบบคงที่ของ API เฟรมเวิร์ก

  • กิจกรรม
    • ActivityCompat - รวมถึง การติดตั้งใช้งานที่เข้ากันได้แบบย้อนหลังสำหรับฟีเจอร์สำคัญล่าสุดของ กิจกรรม เช่น สิทธิ์รันไทม์และการเปลี่ยนภาพเคลื่อนไหว
    • FragmentActivity - มี การติดตั้งใช้งานที่เข้ากันได้แบบย้อนหลังสำหรับกิจกรรมเพื่อใช้เวอร์ชันไลบรารีการสนับสนุนของ API Fragment และ Loader
    • AppCompatActivity - มีธีมสี Material, การปรับสีวิดเจ็ต และการรองรับแถบแอป สำหรับอุปกรณ์รุ่นก่อนหน้า การใช้คลาสนี้กำหนดให้คุณต้องใช้ธีมเพื่อให้การนำเสนอภาพเป็นไปอย่างสอดคล้องกันTheme.AppCompat
  • Fragment - Provides a stand-alone implementation of the framework Fragment class. ต้องใช้คลาสนี้กับ FragmentActivity
  • ContextCompat - ให้การสนับสนุน สำหรับฟีเจอร์ที่เปิดตัวในรุ่นล่าสุดของคลาส Context ซึ่งรวมถึงการสนับสนุนสิทธิ์ การเข้าถึงไฟล์ และข้อมูลสี
  • IntentCompat - ให้การสนับสนุน สำหรับฟีเจอร์ที่เปิดตัวในรุ่นล่าสุดของคลาส Intent ซึ่งรวมถึงวิธีการเลือกและ เริ่มกิจกรรมที่เฉพาะเจาะจง
  • Loader - มีการใช้งานแบบคงที่ของคลาส Loader ของเฟรมเวิร์ก และเป็นคลาสพื้นฐานสำหรับคลาสการสนับสนุน AsyncTaskLoader และ CursorLoader
  • Preference - คลาสนี้และคลาสย่อย ของคลาสนี้มีการติดตั้งใช้งานอินเทอร์เฟซผู้ใช้การตั้งค่าแอปในลักษณะ ที่เข้ากันได้แบบย้อนหลัง
  • ContentResolverCompat - ให้การรองรับฟีเจอร์ที่เปิดตัวในรุ่นล่าสุดของคลาส ContentResolver โดยเฉพาะquery()เมธอด ที่รองรับการยกเลิกการค้นหาที่กำลังดำเนินการอยู่

อินเทอร์เฟซผู้ใช้

คลาสในไลบรารีการสนับสนุนเหล่านี้จะมีการติดตั้งใช้งานวิดเจ็ตและลักษณะการทำงานของอินเทอร์เฟซผู้ใช้ที่สำคัญ และช่วยให้คุณสร้างอินเทอร์เฟซแอปที่ทันสมัยมากขึ้นใน อุปกรณ์รุ่นเก่า วิดเจ็ตบางรายการเหล่านี้ใช้ได้ผ่านไลบรารีการสนับสนุนเท่านั้น

คอนเทนเนอร์เลย์เอาต์อเนกประสงค์

คลาสการสนับสนุนเหล่านี้มีคอนเทนเนอร์อินเทอร์เฟซผู้ใช้ที่ปรับเปลี่ยนได้ สำหรับกรณีการใช้งานการออกแบบที่แตกต่างกัน

  • RecyclerView - สร้างเลย์เอาต์สำหรับ การแสดงรายการยาวๆ โดยใช้กลยุทธ์เพื่อหลีกเลี่ยงการใช้หน่วยความจำสูง คลาสนี้ช่วยให้คุณสร้างมุมมองแบบจำกัดของชุดข้อมูลขนาดใหญ่ได้ จึงไม่ต้องใช้หน่วยความจำจำนวนมากเมื่อแสดงรายการ ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ RecyclerView ได้ที่ คำแนะนำเกี่ยวกับ Recycler View
  • ViewPager - จัดวางเลย์เอาต์ที่ช่วยให้ ผู้ใช้พลิกซ้ายและขวาผ่านหน้าข้อมูลได้
  • GridLayout - จัดวางวิดเจ็ตย่อยในตารางสี่เหลี่ยมผืนผ้า รองรับช่วงที่กำหนดเองของเซลล์ที่อยู่ติดกัน และการกระจายพื้นที่ที่ยืดหยุ่น คลาสนี้มี GridLayout คลาสเวอร์ชันที่เข้ากันได้แบบย้อนหลัง ซึ่งเปิดตัวใน Android 4.0 (API ระดับ 14)
  • PercentFrameLayout และ PercentRelativeLayout - จัดเตรียมเลย์เอาต์ที่รองรับ ขนาดและขอบที่อิงตามเปอร์เซ็นต์สำหรับมุมมองและเนื้อหาขององค์ประกอบย่อย

หมายเหตุ: คลาส ViewPager, RecyclerView, PercentFrameLayout และ PercentRelativeLayout จะใช้ได้จากไลบรารีการสนับสนุนเท่านั้น

คอนเทนเนอร์เลย์เอาต์สำหรับวัตถุประสงค์พิเศษ

คลาสการรองรับเหล่านี้มีการใช้งานที่เข้ากันได้กับรูปแบบเลย์เอาต์ที่เฉพาะเจาะจง เช่น มุมมองลิ้นชักที่ดึงจากขอบของหน้าจอ แผงเลื่อน และการซ้อนรายการภายในรายการ

  • DrawerLayout - สร้างเลย์เอาต์ที่ อนุญาตให้ดึง มุมมองลิ้นชักแบบอินเทอร์แอกทีฟออกมาจากขอบของหน้าต่างมุมมอง
  • SlidingPaneLayout - มีเลย์เอาต์แบบหลายบานหน้าต่างแนวนอนสำหรับใช้ในระดับบนสุดของอินเทอร์เฟซผู้ใช้แอปเพื่อสร้างเลย์เอาต์ที่ปรับให้เข้ากับขนาดหน้าจอต่างๆ ได้อย่างราบรื่น ขยายบนหน้าจอขนาดใหญ่ และยุบให้พอดีกับหน้าจอขนาดเล็ก
  • NestedScrollView - เลย์เอาต์แบบเลื่อน ที่รองรับการซ้อนมุมมองการเลื่อนอื่นๆ ซึ่งช่วยให้คุณสร้างรายการ ที่มีรายการซึ่งมีรายการย่อยเพิ่มเติม รายการที่ซ้อนกันเหล่านี้อาจมีรายการที่เลื่อนในแนวนอนหรือแนวตั้งแยกจากรายการระดับบนสุด
  • SwipeRefreshLayout - จัดวางเลย์เอาต์ เพื่อรองรับการรีเฟรชข้อมูลสำหรับรายการหรือเลย์เอาต์อื่นๆ ด้วยท่าทางสัมผัสการปัดนิ้ว

มุมมอง กล่องโต้ตอบ และวิดเจ็ต

ไลบรารีการสนับสนุนมีคลาสหลายคลาสสําหรับการแสดงเนื้อหาและ การจัดเตรียมองค์ประกอบการโต้ตอบของผู้ใช้ในเลย์เอาต์

  • CardView - ไลบรารีการสนับสนุนคลาสที่กำหนดเอง สำหรับการสร้างการ์ดแสดงผลสไตล์ Material Design คลาสนี้อิงตาม FrameLayout ที่มีมุมโค้งและเงาตกกระทบ
  • AppCompatDialogFragment - แสดงกล่องโต้ตอบที่มีรูปแบบสอดคล้องกันโดยการขยาย DialogFragment และใช้ AppCompatDialog
  • NotificationCompat - รองรับ รูปแบบการแจ้งเตือนใหม่ๆ ในลักษณะที่เข้ากันได้แบบย้อนหลัง
  • SearchView - จัดเตรียมคลาสเพื่อให้ผู้ใช้ป้อนคำค้นหาและส่งคำขอไปยังผู้ให้บริการค้นหา ซึ่งมีไว้สำหรับการใช้งานในแถบแอปเป็นหลัก

ดีไซน์ Material

ไลบรารีการสนับสนุนมีคลาสหลายรายการสำหรับการใช้คำแนะนำเกี่ยวกับอินเทอร์เฟซผู้ใช้ของ Material Design

  • CoordinatorLayout - จัดเตรียมคอนเทนเนอร์ระดับบนสุดสำหรับเลย์เอาต์ที่รวมคอมโพเนนต์และลักษณะการทำงานของ Material Design นอกจากนี้ คลาสนี้ยังใช้เป็นคอนเทนเนอร์สำหรับการโต้ตอบที่เฉพาะเจาะจง กับ View ย่อยอย่างน้อย 1 รายการได้ด้วย
  • AppBarLayout - มีการ ใช้งานฟีเจอร์การเลื่อนหลายอย่างของ แนวคิดแถบแอปของ Material Design
  • FloatingActionButton - สร้าง ปุ่มลอยเพื่อแสดงการกระทําที่โปรโมตประเภทพิเศษ องค์ประกอบอินเทอร์เฟซผู้ใช้ของ Material Design นี้จะแสดงเป็นไอคอนวงกลมที่ลอยอยู่ เหนืออินเทอร์เฟซผู้ใช้ของแอป ดูข้อมูลเพิ่มเติมได้ที่เพิ่มปุ่มการทำงานแบบลอย
  • DrawerLayout - สร้างลิ้นชักการนำทาง ซึ่งเป็นแผง UI ที่แสดงเมนูการนำทางหลักของแอป โดยจะปรากฏขึ้นเมื่อผู้ใช้ ปัดนิ้วจากขอบด้านซ้ายของหน้าจอหรือแตะไอคอนลิ้นชักในแถบแอป ดูข้อมูลเพิ่มเติมได้ที่สร้างแถบนำทาง
  • TabLayout - จัดวางเลย์เอาต์สำหรับ การแสดงหน้าแบบแท็บ วิดเจ็ตนี้ออกแบบมาเพื่อใช้กับชั้นเรียน ViewPager
  • Snackbar - จัดเตรียมวิดเจ็ตสำหรับ แสดงความคิดเห็นแบบเบาๆ เกี่ยวกับการดำเนินการโดยใช้ป๊อปอัป Snackbar

กราฟิก

แพ็กเกจ android.support.graphics.drawable รองรับ Vector Drawable การใช้ภาพวาดแบบเวกเตอร์ช่วยให้คุณแทนที่ชิ้นงาน PNG หลายรายการด้วยกราฟิกแบบเวกเตอร์เดียวที่กำหนดไว้ใน XML ได้

VectorDrawableCompat รองรับ Vector Drawable ใน API ระดับ 9 ขึ้นไป AnimatedVectorDrawableCompat รองรับ ภาพวาดเวกเตอร์เคลื่อนไหวใน API ระดับ 11 ขึ้นไป

การช่วยเหลือพิเศษ

android.support.v4.view.accessibility แพ็กเกจมี คลาสความเข้ากันได้สำหรับการติดตั้งใช้งานฟีเจอร์การช่วยเหลือพิเศษที่เปิดตัวใน API ระดับ 14 ขึ้นไป ซึ่งช่วยให้บริการการช่วยเหลือพิเศษสังเกตและ ระบุการโต้ตอบของผู้ใช้กับรายการที่แสดงบนหน้าจอได้

  • ExploreByTouchHelper - ให้การสนับสนุนการช่วยเหลือพิเศษใน View ที่กำหนดเอง ซึ่งแสดงถึงคอลเล็กชันของรายการเชิงตรรกะที่คล้ายกับ View

การเล่นสื่อ

Android Support Library มีฟังก์ชันการทำงานของเราเตอร์สื่อที่พอร์ตกลับไปยังอุปกรณ์ที่ใช้แพลตฟอร์มเวอร์ชันก่อนหน้า Android 4.1 (API ระดับ 16) คลาสเหล่านี้ช่วยให้ควบคุมการเล่นสื่อในอุปกรณ์ Android ที่เชื่อมต่อได้

  • MediaRouter - ช่วยให้แอปพลิเคชัน ควบคุมการกำหนดเส้นทางของช่องและสตรีมสื่อจากอุปกรณ์ปัจจุบันไปยัง ลำโพงภายนอกและอุปกรณ์ปลายทาง
  • MediaControllerCompat - อนุญาตให้ แอปโต้ตอบกับเซสชันสื่อที่กำลังดำเนินอยู่ แอปสามารถแสดงปุ่มควบคุมสื่อผ่านกลไกนี้และส่งคำสั่งการเล่นอื่นๆ ไปยังเซสชันได้
  • MediaSessionCompat - มี อินเทอร์เฟซรีโมตคอนโทรลสำหรับการเล่นสื่อ ซึ่งช่วยให้โต้ตอบกับตัวควบคุมสื่อ ปุ่มปรับระดับเสียง ปุ่มสื่อ และการควบคุมการขนส่งในแอปอื่นๆ หรือในอุปกรณ์แยกต่างหากได้

แอปสำหรับทีวี

Android SDK มีไลบรารีที่รองรับรูปแบบต่างๆ เช่น หน้าจอขนาดใหญ่ และคอนโทรลเลอร์ที่เกี่ยวข้อง แอปสามารถใช้ไลบรารีการสนับสนุนที่เหมาะสม เพื่อมอบฟังก์ชันการทำงานในแพลตฟอร์มเวอร์ชันต่างๆ และสามารถแสดงเนื้อหาบนหน้าจอภายนอก ลำโพง และอุปกรณ์ปลายทางอื่นๆ ได้

แอป Wear

Android SDK มีไลบรารีที่รองรับนาฬิกา ไลบรารีเหล่านี้มีฟังก์ชันการทำงาน สำหรับแอปที่พร้อมให้ผู้ใช้ใช้งานได้ทุกเมื่อที่สวมนาฬิกา

ยูทิลิตี

ไลบรารีการสนับสนุนของ Android มีฟีเจอร์หลายอย่างที่ไม่ได้สร้าง ไว้ในเฟรมเวิร์ก ไลบรารีเหล่านี้มีเครื่องมือต่างๆ ที่แอปสามารถใช้ได้