ที่เก็บถาวรการแก้ไขไลบรารีการสนับสนุน

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

การแก้ไข 26.0.0 เบต้า 2

(มิถุนายน 2017)

โปรดทราบว่า 26.0.0-beta2 เป็นเวอร์ชันก่อนเผยแพร่ แพลตฟอร์ม API ของแพลตฟอร์มคือ อาจเปลี่ยนแปลงได้ และไม่จำเป็นต้องมีฟีเจอร์หรือการแก้ไขข้อบกพร่อง จาก Support Library เวอร์ชันเสถียรล่าสุด

สำคัญ: ไลบรารีการสนับสนุนพร้อมใช้งานแล้ว ผ่านที่เก็บ Maven ของ Google คุณไม่จำเป็นต้องดาวน์โหลดการสนับสนุน จาก SDK Manager สำหรับข้อมูลเพิ่มเติม โปรดดู การตั้งค่าคลังการสนับสนุน

API ใหม่

ความแตกต่างของ API

การแก้ไขข้อบกพร่อง

  • การลดลงของ Android O SDK ทำให้ตัวเอียงใน TextView หายไป
  • ข้อยกเว้นของตัวชี้ Null เมื่อเชื่อมต่อกับ MediaBrowserServiceCompat
  • TextInputLayout ต้องตั้งค่าคำแนะนำ onProvideAutofillStructure()
  • สแต็กโอเวอร์โฟลว์เมื่อใช้ขนาดอัตโนมัติของ TextView ใน O

การแก้ไข 26.0.0 เบต้า 1

(พฤษภาคม 2017)

โปรดทราบว่า 26.0.0-beta1 เป็นเวอร์ชันก่อนเผยแพร่ แพลตฟอร์ม API ของแพลตฟอร์มคือ อาจเปลี่ยนแปลงได้ และไม่จำเป็นต้องมีฟีเจอร์หรือการแก้ไขข้อบกพร่อง จาก Support Library เวอร์ชันเสถียรล่าสุด

สำคัญ: ไลบรารีการสนับสนุนพร้อมใช้งานแล้ว ผ่านที่เก็บ Maven ของ Google คุณไม่จำเป็นต้องดาวน์โหลดการสนับสนุน จาก SDK Manager สำหรับข้อมูลเพิ่มเติม โปรดดู การตั้งค่าคลังการสนับสนุน

การเปลี่ยนแปลงที่สำคัญ

  • FragmentActivity.setSupportMediaController() และ วันที่ FragmentActivity.getSupportMediaController() ถูกนำออกแล้ว โปรดใช้เมธอด MediaControllerCompat.setMediaController() และ MediaControllerCompat.getMediaController() แบบคงที่ใหม่
  • BottomNavigationView โทรในขณะนี้ onNavigationItemReselected()เมื่อเลือกรายการที่เลือกไว้แล้ว มากกว่าการโทร onNavigationItemSelected()
  • ตอนนี้อินสแตนซ์ทั้งหมดของเมธอด findViewById() จะแสดงผล <T extends View> T แทน View การเปลี่ยนแปลงนี้ จะมีผลต่อไปนี้
    • ซึ่งอาจทำให้โค้ดที่มีอยู่ตอนนี้มีประเภทผลลัพธ์ไม่ชัดเจน เช่น ถ้ามีทั้ง someMethod(View) และ someMethod(TextView) ที่จะนำผลลัพธ์ของการเรียกไปยัง findViewById()
    • เมื่อใช้ภาษาต้นฉบับ Java 8 การดำเนินการนี้ต้องมีการแคสต์อย่างชัดเจนไปยัง View เมื่อประเภทการแสดงผลเป็นแบบไม่จำกัด (เช่น assertNotNull(findViewById(...)).someViewMethod())
    • การลบล้างของเมธอด findViewById() ที่ไม่ใช่ขั้นสุดท้าย (สำหรับ เช่น Activity.findViewById()) อัปเดตประเภทแล้ว

API ใหม่

  • FragmentManager และ Fragment มี isStateSaved() เพื่อให้มีการสอบถามว่า การทำธุรกรรมจะได้รับอนุญาตโดยไม่มีการสูญเสียสถานะ ซึ่งจะเป็นประโยชน์อย่างยิ่ง เพื่อตรวจสอบเมื่อจัดการเหตุการณ์ onClick() ก่อนดําเนินการใดๆ ธุรกรรม
  • รองรับการเคลื่อนไหวเส้นทางใน AnimatedVectorDrawableCompat การเคลื่อนไหวของเส้นทางช่วยให้ตัวสร้างการเคลื่อนไหวของออบเจ็กต์รายการหนึ่งเปลี่ยนคุณสมบัติ 2 รายการได้พร้อมกัน ตามเส้นทางหนึ่ง เส้นทางจะระบุเป็น android:pathData ใน XML ของผู้สร้างภาพเคลื่อนไหว)
  • เกมฟิสิกส์ ภาพเคลื่อนไหว
    • FlingAnimation ใหม่ที่รองรับการสร้างภาพเคลื่อนไหวด้วย ความเร็วเริ่มต้น และช้าลงอย่างนุ่มนวล
    • คลาสย่อยของการสนับสนุน DynamicAnimation ที่ทำให้เคลื่อนไหวที่กำหนดเอง สำหรับออบเจ็กต์ใดก็ได้
    • ทั้ง SpringAnimation และ FlingAnimation สามารถ ทีนี้ทำให้ค่าจำนวนลอยตัวเคลื่อนไหวได้โดยไม่ต้องใช้ View หรือแท็ก Object เพื่อเชื่อมโยง

    สำหรับข้อมูลเพิ่มเติม โปรดดู ภาพเคลื่อนไหวฤดูใบไม้ผลิ และการสะบัดภาพเคลื่อนไหว หน้าตัวอย่าง

  • แบบอักษร การรองรับใน XML
    • ResourcesCompat.getFont อนุญาตให้โหลดแบบอักษร ทรัพยากร รวมถึง XML ของชุดแบบอักษรที่อาจใช้กับ TextView.setTypeface()
    • เมื่อใช้ AppCompat, TextView จะรองรับการระบุทรัพยากรของแบบอักษรหรือ XML แบบอักษรของตระกูลผ่านแอตทริบิวต์ XML ของ android:fontFamily
    • ใช้ชุดแบบอักษร XML เพื่อสร้างชุดแบบอักษรที่มีรูปแบบและน้ำหนัก รูปแบบต่างๆ (หากคุณใช้คลาสไลบรารีการสนับสนุนในการดำเนินการนี้ ให้ใช้ แอตทริบิวต์ app: และ android: )
  • แบบดาวน์โหลดได้ แบบอักษร
    • FontsContractCompat ใหม่ที่ให้คุณขอแบบอักษรได้ จากผู้ให้บริการแบบอักษรแทนที่จะรวมกลุ่มไว้ในแอปของคุณ
    • นอกจากนี้ยังขอแบบอักษรใน XML และใช้ในเลย์เอาต์ได้ด้วย
  • ความเข้ากันได้ของอีโมจิ ไลบรารีต่อไปนี้
    • EmojiCompat สามารถประมวลผล CharSequence ที่กำหนด และเพิ่ม EmojiSpans
    • EmojiTextView และวิดเจ็ตอื่นๆ เพื่อแสดงอีโมจิ
    • FontRequestEmojiCompatConfig เพื่อขอแบบอักษรอีโมจิจาก ผู้ให้บริการแบบอักษร
  • การปรับขนาดอัตโนมัติ TextView
    • เมธอดใหม่ใน TextViewCompat และแอตทริบิวต์ XML เพื่อควบคุมการปรับขนาดอัตโนมัติใน TextView
  • การควบคุมการเล่น Leanback พร้อมการสนับสนุนการกรอวิดีโอ:
    • PlaybackTransportRowPresenter ใหม่ที่แสดงผลการเล่น ด้วย SeekBar
    • PlaybackTransportControlGlue ใหม่ที่ใช้งานได้กับ PlaybackTransportRowPresenter และรองรับการกรอวิดีโอ
    • คลาสฐานใหม่ PlaybackSeekDataProvider สำหรับแอปเพื่อ แสดงภาพขนาดย่อสำหรับค้นหาให้กับ PlaybackTransportControlGlue
  • ที่เก็บข้อมูลค่ากำหนด:
    • PreferenceDataStore ช่วยให้คุณติดตั้งใช้งาน การจัดเก็บค่ากำหนด ตั้งค่าด้วยวิธีการใหม่ใน Preference และ PreferenceManager

ปัญหาที่ทราบ

  • การผสานรวมความเข้ากันได้กับแบบอักษรและอีโมจิที่ดาวน์โหลดได้กับ Google Play บริการทำงานเฉพาะในบริการ Google Play v11+ ซึ่งปัจจุบัน พร้อมให้บริการผ่าน Google Play บริการเวอร์ชันเบต้า

การแก้ไขข้อบกพร่อง

  • MediaBrowserCompat.search() API ไม่ทำงาน (ปัญหาเกี่ยวกับ AOSP 262170)
  • ViewCompat.postInvalidateOnAnimation() ส่งข้อยกเว้น (AOSP ฉบับ 80146)
  • onActivityCreated() เรียกใช้ส่วนย่อยในกิจกรรมที่ถูกทำลาย
  • RecyclerView.isComputingLayout() ควรแสดงผลเป็น "จริง" ระหว่าง ดึงข้อมูลล่วงหน้า
  • เมื่อการเปลี่ยน Fade ถูกขัดจังหวะและย้อนกลับ View เริ่มเล่นภาพเคลื่อนไหวตั้งแต่ต้น (แก้ไขรายการที่โอนมาจาก Android Framework)
  • Transition.Fade ละเว้นอัลฟ่าเริ่มต้นของ View (ปัญหา AOSP 221820)

การแก้ไข 26.0.0 อัลฟ่า 1

(มีนาคม 2017)

โปรดทราบว่า 26.0.0-alpha1 เป็นเวอร์ชันก่อนเผยแพร่ แพลตฟอร์ม API ของแพลตฟอร์มคือ อาจเปลี่ยนแปลงได้ และไม่จำเป็นต้องมีฟีเจอร์หรือการแก้ไขข้อบกพร่อง จาก Support Library เวอร์ชันเสถียรล่าสุด

การเปลี่ยนแปลงที่สำคัญ

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

  • เลิกใช้งานโมดูลเปอร์เซ็นต์การสนับสนุนแล้ว ลูกค้าของโมดูลนี้ ควรย้ายข้อมูลไปยังวิดเจ็ต ConstraintLayout ใหม่ซึ่งมีไว้สำหรับ แยกต่างหากใน SDK Manager
  • โมดูลส่วนย่อยการสนับสนุนไม่ขึ้นอยู่กับ โมดูล support-media-compat

API ใหม่

มีคลาส วิธีการ และค่าคงที่ใหม่ๆ เพิ่มเข้ามามากมาย การสนับสนุนความเข้ากันได้แบบย้อนหลังสำหรับ API ของแพลตฟอร์มที่เพิ่มใน O Preview

  • IME_FLAG_NO_PERSONALIZED_LEARNING: IME สามารถคอยฟังได้ "ไม่มีการเรียนรู้" แฟล็กสำหรับแอปที่มีโหมดส่วนตัว เช่น เบราว์เซอร์ ช่วงเวลานี้ ช่วยให้ IME ทราบว่าแอปอยู่ในโหมดส่วนตัวหรือไม่ เพื่อให้สามารถ ปิดฟังก์ชันการเรียนรู้หรือฟังก์ชันแบบปรับเปลี่ยนได้ขณะที่แอปอยู่ในนั้น

ดูรายการการเปลี่ยนแปลงทั้งหมดของ API ระหว่าง 25.2.0 ถึง 26.0.0-alpha1 ได้ที่ API ไลบรารีการสนับสนุน รายงานความแตกต่าง

การแก้ไขข้อบกพร่อง

  • ในบางกรณี อาจมี AutoTransition อย่างง่าย ภาพเคลื่อนไหวอาจถูกขัดจังหวะด้วยการดู "ข้าม" (ปัญหา AOSP 221816)

การแก้ไข 25.4.0

(มิถุนายน 2017)

สำคัญ: ไลบรารีการสนับสนุนพร้อมใช้งานแล้ว ผ่านที่เก็บ Maven ของ Google คุณไม่จำเป็นต้องดาวน์โหลดการสนับสนุน จาก SDK Manager สำหรับข้อมูลเพิ่มเติม โปรดดู การตั้งค่าคลังการสนับสนุน

การเปลี่ยนแปลงที่สำคัญ

  • ไม่อนุญาตให้ใช้ executePendingTransactions(), commitNow(), popBackStackImmediate() และการเรียกใช้ธุรกรรมที่คล้ายกันในระหว่าง สถานะของ FragmentManager เปลี่ยนแปลง สมาชิกเก่า การดำเนินธุรกรรมไม่ปลอดภัยและ FragmentManager ได้บังคับใช้มาตรการนี้ในระหว่างรัฐ การเปลี่ยนแปลง
  • ในการเปิดตัวไลบรารีการสนับสนุนนี้ เราจะเปิดตัว multidex เวอร์ชัน 1.0.2 เวอร์ชันนี้มีการเปลี่ยนแปลงที่สำคัญดังต่อไปนี้
    • อนุญาตการใช้ APK การใช้เครื่องมือหลายอย่างพร้อมกัน
    • เลิกใช้งาน MultiDexTestRunner (ควรใช้ AndroidJUnitRunner แทน)
    • ให้การป้องกันการดึงข้อมูลที่ไม่ถูกต้องได้ดีขึ้น การจัดการแอป
    • แก้ไขข้อบกพร่องที่อาจทำให้เกิดการละทิ้งไฟล์ชั่วคราว
    • ช่วยให้ติดตั้งได้รวดเร็วขึ้นเมื่อดำเนินการพร้อมกัน
    • แก้ไขข้อบกพร่องในการติดตั้งใน API 19 และ 20

API ใหม่และที่แก้ไข

รองรับการมอร์ฟเส้นทางและการประมาณค่าในช่วงเส้นทางใน AnimatedVectorDrawableCompat การเปลี่ยนภาพเส้นทาง อนุญาตให้รูปร่างเปลี่ยนจากเส้นทางหนึ่ง (ระบุเป็น android:valueFrom) ไปยังเส้นทางอื่น (ระบุเป็น android:valueTo) เพื่อให้รูปภาพซับซ้อนและน่าสนใจ เอฟเฟกต์ การประมาณค่าในช่วงเส้นทางช่วยให้ระบุตัวการประมาณค่าสำหรับ AnimatedVectorDrawableCompat ได้ เป็นเส้นทาง (ระบุเป็น android:pathData ในคอลัมน์อินเตอร์โพเลเตอร์ XML)

ความแตกต่างของ API

ปัญหาที่แก้ไขแล้ว

  • ข้อยกเว้นของตัวชี้ Null เมื่อเชื่อมต่อกับ MediaBrowserServiceCompat
  • MediaBrowserCompat.search() API ไม่ทำงาน (ปัญหา AOSP 262170)
  • BrowseFragment onItemClicked Callback เสียหายในปี 25.3.0
  • NullPointerException ขณะเลื่อนขึ้นและลงใน VerticalGridView ใน 25.3.1
  • ClassCastException ใน SimpleArrayMap.allocArrays()

การแก้ไข 25.3.1

(มีนาคม 2017)

ปัญหาที่แก้ไขแล้ว

  • SwitchCompat ต้องมี SDK ขั้นต่ำ เวอร์ชัน 14 ขึ้นไป (ปัญหา AOSP 251302)
  • ภาพเคลื่อนไหวที่อิงตามฟิสิกส์ updateListener ข้ามเฟรมแรก
  • ภาพเคลื่อนไหวของป้ายกำกับ BottomNavigationView เสีย

การแก้ไข 25.3.0

(มีนาคม 2017)

การเปลี่ยนแปลงที่สำคัญ

ระบบจะเพิ่มข้อมูลเมตาของเวอร์ชันไลบรารีการสนับสนุนโดยอัตโนมัติไปยัง AndroidManifest.xml เมื่อสร้างจาก Gradle ซึ่งช่วยลดความซับซ้อน เวอร์ชันการติดตามในบิลด์สาธารณะ เช่น

<meta-data android:name="android.support.VERSION" android:value="25.3.0" />

การเลิกใช้งาน

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

ExifInterface
เมธอดบูลีน getLatLong(float[]) เลิกใช้งานแล้ว ให้ใช้เมธอดใหม่ getLatLong() แทน ซึ่งไม่มีอาร์กิวเมนต์ใดๆ และแสดงผล double[]
mediacompat
PlaybackStateCompat.Builder.setErrorMessage(CharSequence) เลิกใช้งานแล้ว ให้ใช้วิธีการใหม่ setErrorMessage(int, CharSequence), ซึ่งต้องส่งผ่านรหัสข้อผิดพลาดและคำอธิบาย (ไม่บังคับ)
EXTRA_SUGGESTION_KEYWORDS เลิกใช้งานแล้ว ให้ใช้ ฟังก์ชันการค้นหา MediaBrowserCompat
v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount() เปลี่ยนชื่อเป็น LinearLayoutManager.getInitialPrefetchItemCount() ระบบยังคงรองรับชื่อเดิมอยู่ แต่จะถูกนำออกในรุ่นถัดไป

API ใหม่และที่แก้ไข

appcompat-v7
วิธีการใหม่ วันที่ ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean) ลดความซับซ้อนในการปิดใช้ภาพเคลื่อนไหวของไอคอนเปิด/ปิดลิ้นชักการนำทาง
customtabs
เพิ่มการรองรับช่องทางการรับส่งข้อความ โปรดดู CustomTabsService.requestPostMessageChannel() และ วันที่ CustomTabsService.postMessage() เพื่อดูรายละเอียด
dynamic-animation
ไลบรารีภาพเคลื่อนไหวแบบฟิสิกส์ใหม่ซึ่งมีชุด API สำหรับ การสร้างภาพเคลื่อนไหวที่ตอบสนองต่อข้อมูลจากผู้ใช้แบบไดนามิก
leanback-v17
เพิ่มการรองรับพื้นหลังพารัลแลกซ์ โปรดดู Parallax เพื่อดูรายละเอียด
เพิ่มแล้ว TimePicker วิดเจ็ตสำหรับเลือกเวลาในอินเทอร์เฟซทีวี
mediacompat
เพิ่มฟังก์ชันการค้นหา โปรดดู MediaBrowserCompat.search() และ วันที่ MediaBrowserServiceCompat.onSearch() เพื่อดูรายละเอียด
เพิ่มการรองรับโหมดสุ่มเพลงและโหมดเล่นซ้ำ โปรดดู MediaSessionCompat.setRepeatMode() และ วันที่ setShuffleModeEnabled() เพื่อดูรายละเอียด

ปัญหาที่แก้ไขแล้ว

การแก้ไข 25.2.0

(กุมภาพันธ์ 2017)

การเปลี่ยนแปลงที่สำคัญ

ปัญหาที่แก้ไขแล้ว

  • รุ่นนี้แก้ไขปัญหา MediaRouter ที่รุนแรงซึ่งการใช้ A2DP API การกำหนดเส้นทางของอุปกรณ์และสื่ออาจทำให้อุปกรณ์ไม่ตอบสนอง ต้องรีบูต
  • FragmentManager.FragmentLifecycleCallbacks คลาสเป็นแบบคงที่

ปัญหาที่แก้ไขแล้ว

  • การแสดงงานนำเสนอในสไลด์ที่มีการมิเรอร์หน้าจอทำให้อุปกรณ์ ยกเลิกการเชื่อมต่อ Wi-Fi
  • ปุ่มสื่อไม่สามารถจัดการแอปสื่อที่ไม่ได้ลงทะเบียนอย่างถูกต้อง ตนเองกับ setMediaButtonReceiver()
  • ข้อผิดพลาด VectorDrawable เกี่ยวกับทรัพยากรสตริง (ปัญหา AOSP 232407)
  • คำแนะนำการวางซ้อน TextInputLayout และ ข้อความหากตั้งค่าข้อความด้วย XML (ปัญหา AOSP 230171)
  • หน่วยความจำรั่วไหลใน MediaControllerCompat (ปัญหา AOSP 231441)
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() ขัดข้อง
  • RecyclerView ขัดข้องเมื่อรีไซเคิล ผู้ถือการดู (ปัญหา AOSP 225762)
  • getAllowGeneratedReplies() แสดงผลเท็จไม่ถูกต้องสำหรับการดำเนินการภายใน วันที่ WearableExtender

การแก้ไข 25.1.1

(มกราคม 2017)

สำคัญ: มีข้อบกพร่องที่ทราบใน android.support.v7.media.MediaRouter ในเวอร์ชัน 25.1.1 และ 25.1.0 ของ Support Library หากแอปของคุณใช้ v7 MediaRouter คุณควรอัปเดตเป็น Support Library Revision 25.2.0 ซึ่งจะแก้ไขข้อบกพร่องนี้

การเปลี่ยนแปลงที่สำคัญ

  • ขณะนี้สามารถเพิ่มประสิทธิภาพธุรกรรม Fragment ภายในและทั่วทั้ง ธุรกรรม การเพิ่มประสิทธิภาพการดำเนินการธุรกรรมส่วนย่อยสามารถกำจัด ที่จะยกเลิก ตัวอย่างเช่น สมมติว่าธุรกรรม 2 รายการ ดำเนินการร่วมกัน ส่วนแรกที่เพิ่มแฟรกเมนต์ A และอีกส่วนหนึ่งที่ แทนที่ส่วนย่อย A ด้วยส่วนย่อย B ในกรณีนี้ การดำเนินการแรก อาจถูกยกเลิก และเพิ่มเฉพาะส่วนย่อย B เท่านั้น ซึ่งหมายความว่าส่วนย่อยนั้น A อาจไม่ผ่านวงจรการสร้าง/การทำลาย

    ผลข้างเคียงของการเพิ่มประสิทธิภาพนี้คือส่วนย่อยอาจมีสถานะ เปลี่ยนแปลงจากลำดับที่คาดไว้ ตัวอย่างเช่น สมมติว่ามีธุรกรรมหนึ่ง เพิ่มส่วนย่อย A ส่วนที่สองเพิ่มส่วนย่อย B และส่วนที่ 3 จะนำส่วนย่อยออก ต. ถ้าไม่มีการเพิ่มประสิทธิภาพ ส่วนย่อย B สามารถคาดหวังว่าขณะที่ สร้างแล้ว ส่วนย่อย A จะอยู่ด้วยเช่นกันเนื่องจาก Fragment A จะถูกนำออก หลังจากเพิ่มส่วนย่อย B เมื่อใช้การเพิ่มประสิทธิภาพ ส่วน B ไม่แน่ใจ ส่วน A นั้นจะอยู่ในขณะสร้าง B เนื่องจาก Fragment A การสร้างและการทำลายอาจถูกลบออกโดยการเพิ่มประสิทธิภาพ

    การเพิ่มประสิทธิภาพนี้จะปิดใช้โดยค่าเริ่มต้น หากต้องการเปิดใช้การเพิ่มประสิทธิภาพ โทรหา FragmentTransaction.setAllowOptimization(true)

  • ตอนนี้ Fragment สามารถเลื่อนการเปลี่ยน และภาพเคลื่อนไหวได้จนกว่าจะ พร้อมใช้งานแล้วโดยใช้ Fragment.postponeEnterTransition() และ Fragment.startPostponedEnterTransition() API นี้คล้ายกับ Activity.postponeEnterTransition() และ Activity.startPostponedEnterTransition() ที่ใช้กับการเปลี่ยนกิจกรรม

ปัญหาที่แก้ไขแล้ว

  • MediaSessionCompatTest ล้มเหลวด้วย วันที่ IllegalArgumentException
  • ไม่มีการเรียกใช้ DetailsFragment.installTitleView() ใน 25.1.0
  • ธุรกรรม Fragment ทำให้มี Ghost View เมื่อออก (ฉบับ AOSP 230679)
  • BottomNavigationView ต้องมีระยะห่าง ระหว่างไอคอนรายการและข้อความ (ปัญหา AOSP 230653)
  • ผู้ฟังที่เลือกหายไปจาก PlaybackFragment ใหม่และ วันที่ PlaybackSupportFragment
  • โฟกัสของ TextInputLayout ไม่เปลี่ยนแปลง ถูกต้องในโปรแกรมจำลองจากไลบรารีการสนับสนุนเวอร์ชัน 25.1.0 (ปัญหา AOSP 230461)
  • แทนที่เมนูของ BottomNavigationView (AOSP ไม่ได้) ฉบับ 230343)
  • RecyclerView กับ StaggeredGridLayoutManager ข้อขัดข้องกับรายการแบบเต็มช่วงเวลา (ปัญหา AOSP 230295)
  • เกิดข้อขัดข้องใน MediaSessionCompat เมื่อ กำลังใช้ setCallback(null)
  • PlaybackGlueHostOld และ PlaybackSupportGlueHostOld จะไม่แจ้งการติดต่อกลับเมื่อ การเปลี่ยนแปลงแถวการเล่น
  • ตัวอย่าง PlaybackOverlayFragment /test เริ่มเล่นไม่ได้
  • RecyclerViewFocusRecoveryTest ล้มเหลวใน API 15
  • "ภาพหน้าจอ" โฟกัสที่แถวด้านบนของหน้าจอ
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() ข้อขัดข้องใน API 15
  • setActions() ใน onSubactionClicked() เสีย
  • RecyclerView ขัดข้องเมื่อนำตัวยึดตำแหน่งมุมมองบางส่วนกลับมาใช้

การแก้ไข 25.1.0

(ธันวาคม 2016)

สำคัญ: มีข้อบกพร่องที่ทราบใน android.support.v7.media.MediaRouter ในเวอร์ชัน 25.1.1 และ 25.1.0 ของ Support Library หากแอปของคุณใช้ v7 MediaRouter คุณควรอัปเดตเป็น Support Library Revision 25.2.0 ซึ่งจะแก้ไขข้อบกพร่องนี้

การเปลี่ยนแปลงที่สำคัญ

  • ไคลเอ็นต์ของวิดเจ็ต RecyclerView ที่ฝัง (เช่น รายการแบบเลื่อนในแนวตั้งของรายการแบบเลื่อนแนวนอน) อาจได้รับ ประโยชน์ด้านประสิทธิภาพที่สำคัญโดยการบอกใบ้ให้ตัวจัดการเลย์เอาต์ของวิดเจ็ต RecyclerView ด้านในมีจำนวนเท่าใด รายการที่ต้องเตรียมก่อนเลื่อนบนหน้าจอ โทร LinearLayoutManager.setInitialPrefetchItemCount(N), โดยที่ N คือจำนวนการดูที่แสดงต่อรายการภายใน ตัวอย่างเช่น หากรายการแนวนอนภายในของคุณแสดงการดูสินค้าอย่างน้อย 3.5 ครั้ง คุณก็สามารถปรับปรุงประสิทธิภาพได้โดยการโทร LinearLayoutManager.setInitialPrefetchItemCount(4) ดังนั้น อนุญาตให้ RecyclerView สร้างทั้งหมดที่เกี่ยวข้อง มียอดดูล่วงหน้า ในขณะที่ RecyclerView ด้านนอก การเลื่อนหน้าจอ ซึ่งช่วยลดการกระตุกได้อย่างมากระหว่าง การเลื่อน
  • FragmentActivity.setSupportMediaController() และ วันที่ FragmentActivity.getSupportMediaController() เลิกใช้งานแล้ว โปรดใช้ MediaControllerCompat.setMediaController() และ MediaControllerCompat.getMediaController() แบบคงที่ใหม่
  • เมื่อไคลเอ็นต์ระบุการแต้มสีวิดเจ็ตผ่านการปรับสมดุลแอป (เช่น appcompat:buttonTint) ลูกค้ามีหน้าที่ระบุ สถานะที่จำเป็นทั้งหมด (เช่น "ปิดใช้" "กด" ฯลฯ) นี่คือ สอดคล้องกับวิธีระบุการแต้มสีวิดเจ็ตเมื่อใช้การแต้มสีเฟรมเวิร์ก

API ใหม่และที่แก้ไข

  • เพิ่ม การรองรับ ExifInterface คลัง ไลบรารีนี้ เลิกรวมกลุ่มที่สนับสนุนการอ่านข้อมูล Exif จาก JPEG และการจัดรูปแบบ RAW ไฟล์ และการตั้งค่าข้อมูล Exif ในไฟล์ภาพ JPEG
  • เปลี่ยนโครงสร้างภายในโค้ด Snackbar เป็น อนุญาตให้แอปแสดงเนื้อหาที่กำหนดเอง BaseTransientBottomBar คือคลาสพื้นฐานใหม่ที่แสดง ลักษณะการทำงานของการเลื่อนและภาพเคลื่อนไหวทั่วไป
  • เพิ่มแพ็กเกจ leanback.media ใหม่ซึ่งมีคลาสตัวช่วยสำหรับการผสานรวมมีเดียเพลเยอร์เข้ากับแอปพลิเคชัน Android TV
  • เพิ่ม SeekBarPreference แล้ว พร้อมการออกแบบที่ปรับแต่งได้และแอตทริบิวต์ตามค่ากำหนด v7 ไลบรารีการสนับสนุน
  • เพิ่ม ArraySet แล้ว ไปยังไลบรารีการสนับสนุน v4 ชั้นเรียนนี้สอดคล้องกับเฟรมเวิร์ก คลาส ArraySet ที่เปิดตัวใน API ระดับ 23
  • RecyclerView RecyclerView รายการ การปรับปรุงการดึงข้อมูลล่วงหน้า

ปัญหาที่แก้ไขแล้ว

  • การเปิด/ปิดการแสดงรหัสผ่านไม่ผ่านการทดสอบการช่วยเหลือพิเศษ
  • Appcompat ไม่ดำเนินการตาม state_enabled ในอุปกรณ์ก่อนเวอร์ชัน L
  • เพิ่มกลไกการกู้คืนโฟกัสใน RecyclerView แล้ว ค่ากำหนดการสนับสนุนที่แก้ไขแล้วนี้ โฟกัสไม่สมบูรณ์เมื่อใช้การนำทาง DPAD เช่น ใน Android TV อุปกรณ์
  • Leanback: BrowseFragment ขัดข้องเมื่อปิดใช้ส่วนหัวและไม่มีอะแดปเตอร์
  • ความเข้ากันได้ของแอป: AlertDialog กว้างเกินไป
  • โทร InputContentInfoCompat ครั้ง requestPermission() เมื่อใดที่ควรเรียก releasePermission()
  • ขัดข้อง MediaBrowserCompat รายการ
  • CoordinatorLayout จะวัด/จัดวางมุมมองเมื่อตั้งค่าการมองเห็นเป็น GONE
  • แต้มสี AnimatedVectorDrawableCompat ในระดับ API ไม่ได้ ต่ำกว่า 24
  • ไลบรารี Leanback ทำให้เกิดข้อผิดพลาดที่ไม่เป็นจริงของ Lint
  • ไลบรารีชุดสีทำให้การทดสอบล้มเหลวในทุกระดับ API
  • การทดสอบที่ล้มเหลว RecyclerView รายการบน Leanback
  • RecyclerView ขัดข้องเมื่อรีไซเคิล ผู้ถือการดู (ปัญหา AOSP 225762)
  • Fragment.onDestroy() ไม่ได้เรียกใช้ Fragment ใน Backstack
  • CollapsingToolbarLayout Scrim คือ ไม่ได้วาดเมื่อยุบ
  • CoordinatorLayout.offsetChildByInset() ขว้าง วันที่ IllegalArgumentException
  • กำลังถอด RecyclerView รายการเคลื่อนไหว RecyclerViewภายใน ป้องกันอนาคต การดึงข้อมูลล่วงหน้า
  • แนบ RecyclerView รายการไม่ได้ การดึงข้อมูลล่วงหน้าที่ฝังไว้
  • ดึงข้อมูลล่วงหน้าสำหรับ RecyclerView ที่ฝัง รายการจะถูกทิ้งไประหว่างเลย์เอาต์แรก
  • การดึงข้อมูล RecyclerView ล่วงหน้าไม่สำเร็จหากมีการลาก 2 รายการ เหตุการณ์ต่างๆ มาถึงตำแหน่งเดียวกัน
  • RecyclerView ควรคาดการณ์ เลย์เอาต์ในขณะที่ RenderThread กำลังแสดงผล
  • ทรัพยากรสีที่กำหนดค่าตอนกลางคืนซึ่งแปลงเป็น "ถอนออกได้" ไม่เสมอไป ถูกล้างออกจากแคชทรัพยากรอย่างเหมาะสม
  • FloatingActionButton: การตั้งค่า BackgroundTintList แบบเป็นโปรแกรมทำงานไม่ถูกต้อง (AOSP ฉบับ 227428)
  • TextInputLayout: แบบตัวพิมพ์ไม่ใช่ กำลังตั้งค่าสำหรับ ErrorView (ปัญหา AOSP 227803)
  • TextInputLayout จะถอยกลับเสมอ เป็นสีข้อผิดพลาดสีอ่อนต่ำกว่า API 23 (ปัญหาเกี่ยวกับ AOSP 221992)
  • FloatingActionButton แสดงเป็น กดเมื่อตัวชี้ออกจากบ้าน

ดูรายการการแก้ไขข้อบกพร่องทั้งหมดแบบสาธารณะได้ใน เครื่องมือติดตามปัญหา AOSP

การเลิกใช้งาน

ในรุ่นนี้มีการเลิกใช้งานเมธอดและคลาสหลายรายการ เหล่านี้ API ที่เลิกใช้งานแล้วจะถูกนำออกในเวอร์ชันในอนาคต และนักพัฒนาซอฟต์แวร์ควร ย้ายข้อมูลออก สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีย้ายข้อมูลออกจาก API ที่เฉพาะเจาะจง โปรดดูเอกสารประกอบของ API ดังกล่าว

การแก้ไข 25.0.1

(พฤศจิกายน 2016)

ปัญหาที่แก้ไขแล้ว

  • เปิด/ปิดรหัสผ่าน TextInputLayout จะปิดใช้โดยค่าเริ่มต้นเพื่อหลีกเลี่ยงการเขียนทับโดยไม่จำเป็น เนื้อหาที่ถอนออกได้ที่นักพัฒนาแอประบุไว้ ซึ่งคุณสามารถเปิดใช้ด้วยตนเองผ่าน แอตทริบิวต์ XML passwordToggleEnabled
  • ขณะนี้ BottomNavigationView รายการ บรรทัดเดียวให้ตรงกับข้อมูลจำเพาะของ Material
  • RecyclerView จะขัดข้องระหว่างการดึงข้อมูลล่วงหน้าหาก Layout Manager เป็นค่าว่าง
  • ระดับความสูง BottomNavigationView คือ ตั้งค่าได้อย่างถูกต้อง (ปัญหา AOSP 226182)
  • BottomNavigationView ขัดข้องเมื่อ การเพิ่มรายการในเมนูแบบเป็นโปรแกรม (ปัญหา AOSP 225731)
  • แก้ไขเป็น TextInputLayout ซ้าย+ขวา องค์ประกอบที่ถอนออกได้ (ปัญหา AOSP 225836)
  • RecyclerView ขัดข้องเมื่อรีไซเคิล ตัวยึดตำแหน่งวิดีโอ (ปัญหา AOSP 225762)
  • Leanback: TalkBack มักพูดว่า "null" ในมุมมองแบบแยกหน้าจอ
  • RecyclerView: ปัญหาในการแสดงภาพใน Android Studio (ปัญหา AOSP 225753)
  • ยังคงแสดงอีก BottomNavigationView รายการ รายการในเมนูตามที่เลือกไว้หลังจาก onNavigationItemSelected() แสดงผลเป็น "เท็จ" (ปัญหา AOSP 225898)
  • ForwardListener ส่ง NoSuchMethodError (AOSP) ฉบับ 225647)
  • TextInputEditText ไม่แสดง คำแนะนำในโหมดแยก IME (ปัญหา AOSP 221880)

ดูรายการการแก้ไขข้อบกพร่องทั้งหมดแบบสาธารณะได้ใน เครื่องมือติดตามปัญหา AOSP

การแก้ไข 25.0.0

(ตุลาคม 2016)

การเปลี่ยนแปลงที่สำคัญ

  • เครื่องมือสร้าง ContextCompat ถูกแล้ว ที่ได้รับการป้องกัน ชั้นเรียนนี้ไม่ควรสร้างอินสแตนซ์แบบสาธารณะ แต่อาจ ขยายโดยไลบรารีการสนับสนุนที่กำหนดเป้าหมาย API ระดับที่ใหม่กว่า
  • สร้างเครื่องมือสร้าง ActivityCompat แล้ว ได้รับการปกป้องแล้ว ชั้นเรียนนี้ไม่ควรสร้างอินสแตนซ์แบบสาธารณะ แต่อาจ ขยายโดยไลบรารีการสนับสนุนที่กำหนดเป้าหมาย API ระดับที่ใหม่กว่า
  • สร้าง getReferrer(Activity) แล้ว แบบคงที่
  • นำ android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V) ออกแล้ว การติดตั้งใช้งานเมธอดนี้ของไคลเอ็นต์ ควรลบออก
  • นำ android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object) ออกแล้ว ควรแทนที่การใช้งานด้วย เมธอดที่มีชื่อที่เหมาะสม fromMediaSession()
  • android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object) นำออกแล้ว ควรแทนที่การใช้งานด้วยตัวเลือกที่เหมาะสม วิธีการที่ตั้งชื่อ MediaSessionCompat.QueueItem#fromQueueItem
  • นำ android.support.v7.widget.Space ออกแล้ว การใช้งาน ควรแทนที่ด้วย android.support.v4.widget.Space

API ใหม่

  • android.support.design.widget.BottomNavigationView ชั้นเรียน จะใช้วิธี ด้านล่าง Navigation จากข้อมูลจำเพาะของดีไซน์ Material
  • แพ็กเกจ android.support.v13.view.inputmethod ใหม่มีชั้นเรียนด้วย สำหรับการเข้าถึงฟีเจอร์ android.view.inputmethod.InputConnection ที่เปิดตัวหลังจาก API ระดับ 13
  • android.v7.widget.RecyclerView.DividerItemDecoration ชั้นเรียน จัดเตรียมการติดตั้งใช้งานฐานสำหรับตัวแบ่งแนวตั้งหรือแนวนอนระหว่าง รายการ
  • สไตล์ตกแต่งใหม่ใน android.support.v7.app.NotificationCompat DecoratedCustomViewStyle และ DecoratedMediaCustomViewStyle เพิ่มคลาสมิเรอร์ใน API 24 ของแพลตฟอร์ม

ปัญหาที่แก้ไขแล้ว

ดูรายการการแก้ไขข้อบกพร่องทั้งหมดแบบสาธารณะได้ใน เครื่องมือติดตามปัญหา AOSP

การแก้ไข 24.2.1

กันยายน 2016

ปัญหาที่แก้ไขแล้ว

ดูรายการการแก้ไขข้อบกพร่องทั้งหมดแบบสาธารณะได้ใน เครื่องมือติดตามปัญหา AOSP

การแก้ไข 24.2.0

สิงหาคม 2016

รุ่น 24.2.0 มีการเปลี่ยนแปลงต่อไปนี้

หมายเหตุ: รุ่น 24.2.0 ยกเลิกการสนับสนุนสำหรับ Android 2.2 (API ระดับ 8) และต่ำกว่า คลาสและเมธอดซึ่งมีอยู่เฉพาะกับ แสดงเวอร์ชันของระบบเหล่านั้น ตอนนี้มีเครื่องหมายว่าเลิกใช้งานแล้วและไม่ควรอีกต่อไป ระบบอาจนำคลาสและวิธีการที่เลิกใช้งานเหล่านี้ออกในอนาคต

การแยกส่วนไลบรารีการสนับสนุนเวอร์ชัน 4

ในรุ่นนี้ ไลบรารีการสนับสนุนเวอร์ชัน 4 ได้ จะแบ่งออกเป็นโมดูลย่อยๆ หลายโมดูล ได้แก่

support-compat
มี Wrapper ความเข้ากันได้สำหรับ API ของเฟรมเวิร์กใหม่ เช่น Context.getDrawable() และ View.performAccessibilityAction()
support-core-utils
มีคลาสยูทิลิตีมากมาย เช่น AsyncTaskLoader และ PermissionChecker
support-core-ui
ใช้คอมโพเนนต์ต่างๆ ที่เกี่ยวข้องกับ UI เช่น ViewPager, NestedScrollView และ ExploreByTouchHelper
support-media-compat
พอร์ตที่ส่วนสนับสนุนของเฟรมเวิร์กสื่อ รวมถึง MediaBrowser และ MediaSession
support-fragment
พอร์ตส่วนย่อยกลับคืนมา โมดูลนี้มีการขึ้นต่อกันใน support-compat support-core-utils, support-core-ui และ support-media-compat

สำหรับความเข้ากันได้แบบย้อนหลัง หากคุณระบุ support-v4 ใน สคริปต์ Gradle, APK ของคุณจะรวมโมดูลเหล่านี้ทั้งหมด แต่หากต้องการลด ขนาดของ APK ขอแนะนำให้ระบุโมดูลเฉพาะที่แอปต้องการ

การอัปเดต API

  • ไคลเอ็นต์ที่ใช้แท็บที่กำหนดเองจะทำสิ่งต่อไปนี้ได้ ควบคุมว่าจะเปิด Instant Apps หรือไม่ (โปรดทราบว่า Instant Apps ยังไม่ใช่ เวอร์ชันสำหรับผู้ใช้ทั่วไป) หากต้องการเปิดหรือปิดใช้ Instant Apps โปรดโทร CustomTabsIntent.Builder.setInstantAppsEnabled()หรือ ระบุ EXTRA_ENABLE_INSTANT_APPS โดยค่าเริ่มต้น แท็บที่กำหนดเองจะ เปิดใช้ Instant Apps เมื่อฟีเจอร์ดังกล่าวพร้อมใช้งาน
  • TextInputLayout เพิ่มการสนับสนุนสำหรับ เปิด/ปิดระดับการเข้าถึงรหัสผ่านจากข้อกำหนดของดีไซน์ Material
  • android.support.transition ใหม่ สร้างแพ็กเกจสำรองจากเฟรมเวิร์กการเปลี่ยนเป็น API ระดับ 14 และสูงกว่า ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิง android.support.transition
  • ไลบรารีการสนับสนุนแท็บที่กําหนดเอง เพิ่มการสนับสนุนสำหรับการใช้ RemoteViews ใน แถบเครื่องมือ setToolbarItem()ที่มีอยู่ เลิกใช้งานไปแล้ว
  • AppCompatResources เพิ่ม ความสามารถในการโหลด <vector> (ใน API ระดับ 9 ขึ้นไป) หรือ <animated-vector> (ใน API ระดับ 11 ขึ้นไป) จาก รหัสทรัพยากร โดยใช้เมธอด getDrawable() ใหม่
  • CoordinatorLayout รองรับแล้ว การกำหนดมุมมองประกอบ และระบุว่ามุมมองอื่นๆ ควรหลบเลี่ยงการแทรก ครั้ง วิธีนี้ช่วยให้แอปจำลองรูปแบบลักษณะการทำงานที่คล้ายกับวิธี FloatingActionButton ย้ายออกจาก ของ Snackbar แต่สำหรับ มุมมองที่กำหนดเองของเด็กๆ สำหรับข้อมูลเพิ่มเติม โปรดดู LayoutParams.insetEdgeและ เอกสารอ้างอิง LayoutParams.dodgeInsetEdges
  • คลาส DiffUtil ใหม่จะสามารถคำนวณส่วนต่างระหว่าง และสามารถส่งรายการการดำเนินการอัปเดตที่เหมาะสม ให้ RecyclerView.Adapter ใช้งาน
  • เพิ่ม RecyclerView.OnFlingListener เพื่อรองรับแบบกำหนดเองแล้ว เพื่อตอบสนองการสะบัด SnapHelper จะมีการติดตั้งใช้งานเฉพาะสำหรับการแสดงมุมมองเด็ก และ LinearSnapHelper ขยายการติดตั้งใช้งานนี้เพื่อให้การสแนปที่จัดวางไว้ตรงกลาง พฤติกรรมที่คล้ายกับ ViewPager
  • ขณะนี้ไลบรารีแท็บที่กำหนดเองทำให้ลูกค้าขอมาตรฐาน UI ของเบราว์เซอร์ แทน UI แท็บที่กำหนดเอง โดยเรียกใช้ CustomTabsIntent.setAlwaysUseBrowserUI() ลักษณะการทำงานนี้ มีประโยชน์ในกรณีที่เบราว์เซอร์กำหนดค่าเริ่มต้นเป็น UI แท็บที่กำหนดเอง แต่ผู้ใช้ ได้แสดงการตั้งค่าสำหรับ UI ของเบราว์เซอร์มาตรฐาน

การเปลี่ยนแปลงลักษณะการทำงาน

  • หากคุณใช้ฟังก์ชันกลางวัน/กลางคืนของไลบรารีแอปที่ใช้ร่วมกัน ระบบจะ ต่อจากนี้ไปจะสร้างกิจกรรมของคุณอีกครั้งโดยอัตโนมัติ เมื่อโหมดกลางวัน/กลางคืนมีการเปลี่ยนแปลง (ทั้งเพราะช่วงเวลาของวันหรือเนื่องจากการโทรหา AppCompatDelegate.setLocalNightMode())
  • ตอนนี้ Snackbar ตามหลัง แถบนำทาง หากแถบสถานะโปร่งแสง

ไลบรารี MediaRouter

อุปกรณ์บลูทูธไม่ได้แสดงเป็นเส้นทางสื่ออีกต่อไป กำลังกำหนดเส้นทางเสียงไปยัง ในตอนนี้ อุปกรณ์บลูทูธจะควบคุมได้ในระดับระบบ Android เท่านั้น

การเลิกใช้งาน

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

  • มีเมธอดมากมายในคลาสต่อไปนี้ที่จำเป็นสำหรับ API 8 และ และไม่ควรใช้อีกต่อไป แต่ให้ใช้เฟรมเวิร์ก การนำไปใช้งานจริง
    • android.support.v4.view.KeyEventCompat: แทนที่ด้วย KeyEvent
    • android.support.v4.view.MotionEventCompat: ใช้ MotionEvent
    • android.support.v4.view.ViewCompat: ใช้ View
    • android.support.v4.view.ViewConfigurationCompat: ใช้ ViewConfiguration
  • AccessibilityServiceInfoCompat.getDescription() เพื่อรับการสนับสนุน AccessibilityServiceInfoCompat.loadDescription(), ซึ่งจะแสดงคำอธิบายที่แปลอย่างถูกต้อง
  • คุณไม่ควรสร้างอินสแตนซ์ ActivityCompat โดยตรง เมธอด getReferrer(Activity) ที่ไม่คงที่จะเป็น แบบคงที่ในรุ่นที่กำลังจะเปิดตัว
  • เราเลิกใช้งาน CoordinatorLayout.Behavior.isDirty() แล้ว สายจาก CoordinatorLayout ช่วง การใช้งาน ตลอดจนการเรียกวิธีการนี้จะถูกลบออก
  • MediaSessionCompat.obtain() เลิกใช้งานแล้วและแทนที่แล้ว โดยใช้เมธอดที่มีชื่อที่เหมาะสมมากกว่า fromMediaSession()
  • MediaSessionCompat.QueueItem.obtain() เลิกใช้งานแล้วและแทนที่ด้วย เมธอดที่มีชื่อเหมาะสมมาก fromQueueItem()
  • คลาส Abstract หลายคลาสเลิกใช้งานแล้วและแทนที่ด้วย ที่แสดงความเทียบเท่ากันของเฟรมเวิร์กมากขึ้น
  • CustomTabsSession.setToolbarItem() เลิกใช้งานแล้วและแทนที่ด้วย แบบ RemoteView setSecondaryToolbarViews()

การแก้ไขข้อบกพร่อง

ปัญหาที่ทราบต่อไปนี้ได้รับการแก้ไขแล้วในรุ่น 24.2.0

  • ตรวจสอบว่าสัญญาณบอกสถานะ SwipeRefreshLayout แสดงอยู่เมื่อ ระบบจะเรียกใช้ setRefreshing(true) ก่อนที่จะส่งการวัดครั้งแรก (AOSP) ฉบับ 77712)
  • ป้องกันไม่ให้ TabLayout กะพริบเมื่อเปลี่ยนหน้า (AOSP) ฉบับ 180454)
  • หลีกเลี่ยงClassNotFoundExceptionเมื่อยกเลิกการทำเครื่องหมาย SavedState ในระดับ API 11 หรือต่ำกว่า (ปัญหาเกี่ยวกับ AOSP 196430)

ดูรายการการแก้ไขข้อบกพร่องทั้งหมดแบบสาธารณะได้ใน เครื่องมือติดตามปัญหา AOSP

การแก้ไข 24.1.1

กรกฎาคม 2016

ปัญหาที่แก้ไขแล้ว

  • แก้ไขปัญหาในรุ่น 24.1.0 ซึ่งส่งผลต่อรหัสทรัพยากร แชร์ระหว่างไลบรารีการสนับสนุน ปัญหานี้ทำให้แอปที่ต้องใช้ สนับสนุนไลบรารีพร้อมด้วยทรัพยากร (เช่น การออกแบบและ Appcompat) สำหรับ พบปัญหาที่เกิดจากรหัสทรัพยากรไม่ตรงกัน

การแก้ไข 24.1.0

กรกฎาคม 2016

การเปลี่ยนแปลงสำหรับการสนับสนุน v4 คลัง:
  • NotificationCompat.Action.WearableExtender มี getHintDisplayActionInline() ใหม่และ setHintDisplayActionInline() วิธีสำหรับความเข้ากันได้กับ ตัวอย่าง Android Wear 2.0 วิธีการเหล่านี้ช่วยให้แอปพลิเคชันระบุได้ว่าควรดำเนินการใด ปรากฏแทรกในบรรทัดพร้อมกับการแจ้งเตือน
  • การเรียกใช้ Fragment.setUserVisbileHint() จะไม่ทำให้ Fragment กลายเป็น started หากเพิ่มคำแนะนำไปยัง FragmentTransaction ที่ยังไม่ได้คอมมิต ช่วงเวลานี้ ส่งผลต่อผู้ใช้ FragmentPagerAdapter ที่ ลบล้าง setUserVisbileHint() และคาดเดาสถานะวงจรที่เจาะจงของส่วนย่อย หลังจากโทรหา super.setUserVisibleHint() สำหรับข้อมูลเพิ่มเติม ดูหน้าอ้างอิงสำหรับเอกสารสำหรับ Fragment.setUserVisbileHint()

ปัญหาที่แก้ไขแล้ว

  • ผลลัพธ์ TabLayout.setCustomView(null) ใน NullPointerException (AOSP) ฉบับ 214753)
  • TabLayout ไฮไลต์แท็บที่กำหนดเองไม่ถูกต้อง (AOSP ปัญหา 214316)
  • AppCompatTextHelper ใช้อาร์เรย์แอตทริบิวต์ที่จัดเรียงไม่ถูกต้อง (ปัญหา AOSP 214366)
  • ไม่สามารถอ้างอิง VectorDrawable จาก XML ของคอนเทนเนอร์ที่ถอนออกได้เมื่อใช้ ContextWrapper ที่กำหนดเอง (ปัญหา AOSP 214055)
  • ViewDragHelper.saveLastMotion() จะส่ง ArrayIndexOutOfBoundsException (AOSP) ฉบับ 212945)
  • BottomSheetBehavior จะขยายเป็นความสูงของเนื้อหาเดิมเมื่อใช้ setState(STATE_EXPANDED) (ปัญหาเกี่ยวกับ AOSP 213660)
  • CollapsingToolbarLayout อาจไม่รองรับไฟล์ย่อยที่ปักหมุดได้ที่ด้านบนของหรือ ขอบล่าง (ปัญหา AOSP 213,001)
  • ชื่อการเรียกดู Leanback ไม่สนับสนุนการตรวจสอบความสอดคล้อง RTL (ปัญหา AOSP 213461)
  • PagerTabStrip หายไปเนื่องจากไม่มีคำอธิบายประกอบที่รับช่วงมา (ปัญหา AOSP 213359)
  • การเชื่อมโยงข้อมูลจะแสดง NullPointerException เมื่อใช้บูลีนเพื่อตั้งค่า แฟล็กแบบมีเงื่อนไข (ปัญหา AOSP 191841)
  • CoordinatorLayout ไม่ตอบสนอง setFitsSystemWindows() (ปัญหา AOSP 212720)
  • BottomSheetBehavior ขัดข้องเมื่อตั้งค่าสถานะเริ่มต้น (ปัญหา AOSP 203114)
  • ViewPager ข้ามหน้าเว็บหากดัชนีหน้าเว็บมีค่าสูง (ปัญหา AOSP 211734)
  • BottomSheetBehavior ใช้ไม่ได้กับเลย์เอาต์แบบไดนามิก (ปัญหาเกี่ยวกับ AOSP 205226)

การแก้ไข 24.0.0

มิถุนายน 2016

การเปลี่ยนแปลงสำหรับการสนับสนุน v4 คลัง:
  • เพิ่มเมื่อ Fragment.commitNow() สำหรับคอมมิตแบบพร้อมกัน
  • เพิ่มเมื่อ NotificationCompat.MessagingStyle สำหรับการสนทนากับผู้ใช้หลายคน
  • เพิ่มเมื่อ NotificationManagerCompat.areNotificationsEnabled() และ getImportance()
  • MediaSessionCompat ขณะนี้จะมิเรอร์ฟังก์ชันของ MediaSession และจะไม่เรียกใช้ setMediaButtonReceiver() โดยอัตโนมัติอีกต่อไป

หมายเหตุ: เฉพาะ MediaBrowserServiceCompat ในเวอร์ชัน 24.0.0 เท่านั้น สามารถพัฒนาร่วมกับ Android เวอร์ชันต่อๆ ไปจาก API 24 ได้ หากคุณใช้เวอร์ชันก่อนหน้า ให้อัปเดตเป็นเวอร์ชันนี้เป็น เพื่อความเข้ากันได้

การเปลี่ยนแปลงสำหรับ v7 ไลบรารี appcompat
  • เพิ่มการรองรับการอ้างอิงออบเจ็กต์ ColorStateList ที่มีธีมจาก XML
การเปลี่ยนแปลงของการสนับสนุนการออกแบบ คลัง:
  • การปรับปรุง AppBarLayout การจัดการระดับความสูงโดยใช้ StateListAnimator
การเปลี่ยนแปลงสำหรับไลบรารี Leanback เวอร์ชัน 17 มีดังนี้
  • เพิ่ม OnboardingFragment เพื่อต้อนรับการเรียกใช้ครั้งแรกแล้ว ขั้นตอนการตั้งค่า
การเปลี่ยนแปลงสำหรับแท็บที่กำหนดเองมีดังนี้
  • เพิ่มการสนับสนุนสำหรับการมอบRemoteViews ลำดับชั้นสำหรับแถบเครื่องมือรอง
  • เพิ่มเมื่อ CustomTabsClient.connectAndInitialize() สำหรับการอุ่นเครื่องใน 1 บรรทัด

การแก้ไข 23.4.0

พฤษภาคม 2016

การเปลี่ยนแปลงสำหรับการสนับสนุน v4 คลัง:
  • แก้ปัญหาที่มีการเพิ่มส่วนย่อยในลำดับที่ไม่ถูกต้อง (ฉบับ 206901)
  • แก้ปัญหาที่วาดแถบแอปไม่ได้หลังจากที่เลื่อน นอกหน้าจอ (ฉบับ 178037)
การเปลี่ยนแปลงสำหรับ v7 ไลบรารี appcompat
การเปลี่ยนแปลงของการสนับสนุนการออกแบบ คลัง:
การเปลี่ยนแปลงของไลบรารีเวกเตอร์ที่วาดได้ของ :

การแก้ไข 23.3.0

เมษายน 2016

การเปลี่ยนแปลงสำหรับการสนับสนุน v4 คลัง:
  • เพิ่ม AppLaunchChecker เพื่อช่วยติดตามการทำงานของแอป เคยเปิดตัวโดยผู้ใช้แล้วในอดีต hasStartedFromLauncher() จะแจ้งให้คุณทราบว่าผู้ใช้มี เปิดแอปของคุณจากหน้าจอหลักมาก่อนแล้ว หรือหากมีเพียง มีการเริ่มต้นใช้งานด้วยวิธีอื่น (เช่น เพื่อดูเว็บใดเว็บไซต์หนึ่ง URL)
  • แก้ปัญหาหน่วยความจำรั่วไหล MediaBrowserServiceCompat.mConnections (ฉบับ 205220)
  • แก้ไขปัญหาที่ ViewPager ไม่คำนึงถึงระยะขอบหน้าเมื่อพลิกหน้า (ฉบับ 203816)
  • นำส่ง Fragment.onRequestPermissionsResult() ไปยังผู้เผยแพร่โฆษณาย่อยแล้ว ส่วนย่อย
การเปลี่ยนแปลงสำหรับ v7 ไลบรารี appcompat
  • แก้ไขปัญหาใน AppCompatSpinner ที่อาจทำให้ ป๊อปอัปหลายรายการจะปรากฏขึ้น (ฉบับ 205052)
  • แก้ไขปัญหาเกี่ยวกับการติดสีปุ่มที่ไม่มีเส้นขอบ (ฉบับ 202967)
  • แก้ไขปัญหาความเข้ากันได้ระหว่าง AppCompatDialogFragment ถึง AlertDialog (ฉบับ 204805)
  • เปลี่ยนกลับการเปลี่ยนแปลงเป็น TintResources ที่เป็นสาเหตุให้เกิด หน่วยความจำและการกำหนดค่า (ฉบับ 205236)
การเปลี่ยนแปลงสำหรับ v7 mediaRouter Library คือ
การเปลี่ยนแปลงค่ากำหนด v7 คลัง:
การเปลี่ยนแปลงสำหรับ v7 ไลบรารี recyclerview
  • แก้ไขข้อบกพร่องที่ RecyclerView ไม่เรียกใช้การเลื่อน Callback หากช่วงรายการที่มองเห็นได้หดลง (ฉบับ 200987)
  • แก้ไขข้อบกพร่องที่ RecyclerView จะค้างหากอยู่ใน การจัดวางแบบเชิงเส้น มีการถ่วงน้ำหนัก และมีรูปภาพ (ฉบับ 203276)
  • แก้ไขข้อขัดข้องใน OrientationHelper.getStartAfterPadding() แล้ว (ฉบับ 180521)
  • แก้ไขข้อขัดข้องโดยใช้ android:nestedScrollingEnabled (ฉบับ 197932)
การเปลี่ยนแปลงของการสนับสนุนการออกแบบ คลัง:
  • แก้ไขข้อบกพร่องที่ Bottom Sheet ซ่อนอยู่จะจัดการการแตะ กิจกรรม (ฉบับ 203654)
  • แก้ไขปัญหาเลย์เอาต์ที่เกิดขึ้นกับ BottomSheetBehavior เมื่อ fitsSystemWindows เป็นความจริง (ฉบับ 203057)
  • แก้ไขปัญหาการช่วยเหลือพิเศษใน Snackbar แล้ว (ฉบับ 182145)
  • แก้ไขข้อขัดข้องใน Snackbar แล้ว ปัด (ฉบับ 203924)
  • แก้ไขข้อบกพร่องใน AppBarLayout ด้วย enterAlways (ฉบับ 203661)
  • แก้ไขข้อบกพร่องที่ TextInputLayout ล้างออกโดยไม่จำเป็น ตัวกรองสีพื้นหลังของวัตถุ EditText (ฉบับ 203357)

การแก้ไข 23.2.1

มีนาคม 2016

การเปลี่ยนแปลงสำหรับการสนับสนุน v4 คลัง:
  • แก้ไขข้อยกเว้นใน DrawableCompat.wrap() และ LayerDrawable ใน API ระดับ 17 ถึง 19 (ฉบับ 201817)
  • แก้ไข ArrayIndexOutOfBoundsException ใน ViewDragHelper.shouldInterceptTouchEvent() (ฉบับ 182262)
  • แก้ไขข้อบกพร่องใน ViewPager ที่เกี่ยวข้องกับ การคำนวณการเลื่อนเพื่อดูการเปลี่ยนแปลงขนาด
  • แก้ไข NullPointerException เมื่อมีการเรียก DrawerLayout.removeDrawerListener() โดยไม่มีการตั้งค่า DrawerLayout.DrawerListener (ปัญหา 202478)
  • แก้ไขข้อบกพร่องที่ไม่ได้ตั้งค่า ViewPager พารามิเตอร์ AccessibilityEvent รายการถูกต้อง เมื่อเลื่อน
  • แก้ไขปัญหาที่ทำให้เกิดการหน่วงระหว่างการหมุนอุปกรณ์เมื่อใช้ Drawable.wrap() (ฉบับ 201924)
การเปลี่ยนแปลงสำหรับ v7 ไลบรารี appcompat
  • เปลี่ยนกลับการขึ้นต่อกันของเนื้อหาเวกเตอร์เพื่อให้นักพัฒนาซอฟต์แวร์ที่ใช้องค์ประกอบ appcompat ไลบรารีไม่ได้บังคับให้ใช้ VectorDrawable และ Flag บิลด์ที่เกี่ยวข้อง
  • แก้ไขปัญหาความเข้ากันได้กับโหมดกลางคืนและ API ระดับ 23 (ฉบับ 201910)
  • แก้ไขปัญหาความเข้ากันได้กับ SwitchCompat และ API ระดับ 7 (ฉบับ 201942)
  • แก้ไขปัญหาการเผยแพร่ค่าการกำหนดค่าในออบเจ็กต์ทรัพยากร ปัญหา 201928
  • แก้ไขปัญหาความเข้ากันได้ที่ android.support.v7.app.NotificationCompat.MediaStyle มองไม่เห็นปุ่มยกเลิกในระดับ API 21 และต่ำกว่า (ปัญหา 202156)
  • แก้ไขข้อขัดข้องในความเข้ากันได้กับ AppCompatSpinner ใน API ระดับ 21 หรือต่ำกว่า (ปัญหา 202246)
  • แก้ไขปัญหาที่รูปแบบ app:textAllCaps = "false" ไม่ งาน (ปัญหา 202117)
  • แก้ไขข้อขัดข้องเมื่อคืนค่า SearchView (ฉบับ 201836)
  • แก้ไขการรั่วไหลของหน่วยความจำที่เกิดขึ้นเมื่อปรับแต่งทรัพยากรที่ถอนออกได้โดยใช้ AppCompat (ปัญหา 202379)
  • แก้ไขปัญหาเกี่ยวกับ KeyEvent ใน API ระดับ 11 และ ด้านล่าง (ปัญหา 202939)
การเปลี่ยนแปลงสำหรับ v7 Cardview ไลบรารีต่อไปนี้
การเปลี่ยนแปลงสำหรับ v7 ไลบรารี recyclerview
  • แก้ไขข้อบกพร่องที่เกี่ยวข้องกับวิธีการวัดข้อมูลจำเพาะแบบต่างๆ (ฉบับ 201856)
  • ลดระยะเวลาปิดล็อกซึ่ง RecyclerView ไม่อนุญาตให้ใช้อะแดปเตอร์ เปลี่ยนแปลงขณะคำนวณเลย์เอาต์หรือการเลื่อน (ฉบับ 202046)
  • แก้ไขข้อขัดข้องเมื่อโทรหา notifyItemChanged() บนรายการที่ไม่แสดงผล (ฉบับ 202136)
  • แก้ไขข้อขัดข้องที่เกิดขึ้นเมื่อ RecyclerView.LayoutManager เพิ่มและนำมุมมองออก การวัดผลเท่านั้น (ฉบับ 193958)
การเปลี่ยนแปลงสำหรับ v7 mediaRouter Library คือ
การเปลี่ยนแปลงสำหรับ v17 ไลบรารี Leanback
  • แก้ไขปัญหาเกี่ยวกับ GridLayout.onAddFocusables() ซึ่ง ทำให้เลือกรายการผิด
  • แก้ปัญหาเกี่ยวกับการดำเนินการ GuidedStepFragment รายการ หายไปหลังจากยุบการดำเนินการ
การเปลี่ยนแปลงของการสนับสนุนการออกแบบ คลัง:
  • แก้ไขข้อขัดข้องใน TabLayout แล้ว ก็เพราะการเล่นแท็บ (ฉบับ 201827)
  • แก้ไขข้อบกพร่องใน NavigationView ที่ทำให้เกิดข้อผิดพลาด สีที่จะเลือก (ฉบับ 201951)
  • แก้ไขข้อบกพร่องที่ setBackgroundTintList() เปลี่ยนพื้นหลังไม่ได้อีกต่อไป สี (ฉบับ 201873)
  • แก้ไขปัญหาที่ AppBarLayout เลื่อนได้ไม่สมบูรณ์ อยู่นอกมุมมองเมื่อใช้กับ android:fitsSystemWindows = “true” (ฉบับ 201822)
  • แก้ไขปัญหาที่ BottomSheetDialog ไม่แสดง การดูเนื้อหาแบบสั้นอย่างถูกต้อง (ฉบับ 201793)
  • แก้ไขปัญหาการย้าย BottomSheetDialogFragment ในบางครั้งเมื่อมีการเปลี่ยนแปลงเนื้อหาภายใน (ฉบับ 202125)
  • แก้ไขข้อขัดข้องในลิงก์ตัวนับ TextInputLayout
  • แก้ไขข้อขัดข้องที่เกิดขึ้นเมื่อ TextInputLayout.getCounterMaxLength() กู้คืนสถานะที่บันทึกไว้ (ฉบับ 202375)
  • แก้ไข ClassCastException ที่เกิดขึ้นเมื่อคืนค่า CoordinatorLayout โดยใช้ สถานะที่บันทึกไว้ของมุมมองที่ไม่ใช่ CoordinatorLayout
การเปลี่ยนแปลงของ VectorDrawableCompat:
  • แก้ไขข้อบกพร่องที่มีการอ่านตัวแปรที่ไม่ถูกต้องสำหรับ android:tintMode (ฉบับ 201907)

การแก้ไข 23.2.0

กุมภาพันธ์ 2016

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4 มีดังนี้
  • เพิ่มMediaBrowserCompatสำหรับการสนับสนุนMediaBrowser และMediaBrowserServiceCompatสำหรับการสนับสนุนMediaBrowserService มีประโยชน์ เมื่อเชื่อมต่อบริการในเบื้องหลังของแอปสื่อกับคอมโพเนนต์ UI และสามารถผสานรวมกับ Android Auto และ Android Wear ได้โดยไม่ต้อง API ระดับ 21 ขึ้นไป
  • ขณะนี้ระบบเรียกใช้ onActivityResult() สำหรับ FragmentActivity ที่ฝังไว้
การเปลี่ยนแปลงของ v7 AppCompat ไลบรารีต่อไปนี้
  • เพิ่มฟังก์ชันโหมดกลางคืนใน API ระดับ 14 ขึ้นไป เปลี่ยน ระหว่างวัสดุ ธีมสว่างและธีมสีเข้มตามช่วงเวลาของวันหรือ การตั้งค่าเฉพาะแอป
    • ดูธีมกลางวันและกลางคืนได้ที่นี่: <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
    • AppCompatDelegate.setDefaultNightMode(): ตั้งค่า โหมดเริ่มต้นของแอปโดยการส่งค่าคงที่ต่อไปนี้
      • MODE_NIGHT_AUTO
      • MODE_NIGHT_NO
      • MODE_NIGHT_YES
      • MODE_NIGHT_FOLLOW_SYSTEM
    • AppCompatDelegate.setLocalNightMode(): ลบล้าง การตั้งค่าโหมดกลางคืนสำหรับคอมโพเนนต์แอปในเครื่อง
    • AppCompatDelegate.getDefaultNightMode(): การคืนสินค้า โหมดกลางคืนเริ่มต้น
การเปลี่ยนแปลงสำหรับ mediaRouter v7 ไลบรารีต่อไปนี้
  • ขณะนี้อยู่ที่ MediaRouteControllerDialog ใส่สีธีมของแอปที่กำหนดเองอย่างถูกต้อง
การเปลี่ยนแปลงในไลบรารีการสนับสนุนการออกแบบมีดังนี้
  • เพิ่มการสนับสนุนสำหรับ ด้านล่าง ชีต ปลั๊กอินการโต้ตอบ BottomSheetBehavior ช่วยให้มุมมองย่อยของ CoordinatorLayout ทำหน้าที่เป็น Bottom Sheet คลาสฐาน BottomSheetCallback มี Callback เพื่อตรวจสอบเหตุการณ์ Bottom Sheet
การเปลี่ยนแปลงสำหรับการสนับสนุน CustomTabs ไลบรารีต่อไปนี้
  • Chrome ตอนนี้แท็บที่กำหนดเองอนุญาตให้แอปมีแถบด้านล่างพร้อมการดำเนินการ นอกเหนือจากปุ่มการทำงานด้านบนที่มีอยู่
  • CustomTabsIntent.Builder.addToolBarItem(): เพิ่มการดำเนินการ ไปยังแท็บที่กำหนดเอง ซึ่งคุณสามารถใช้ปุ่มนี้เพื่อเพิ่มปุ่มหลายปุ่มได้
  • CustomTabsSession.setToolBarItem(): อัปเดตภาพ สำหรับรายการแถบเครื่องมือ วิธีนี้จะสำเร็จก็ต่อเมื่อมีการระบุ รหัสที่ถูกต้องและเซสชันของเบราว์เซอร์อยู่เบื้องหน้า
เพิ่มไลบรารีการสนับสนุน VectorDrawable แล้ว:
  • ชั้นเรียนที่เพิ่ม:
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • เพิ่มการรองรับเนื้อหา VectorDrawable รายการในแอป ที่ทำงานใน API ระดับ 7 ขึ้นไป ชิ้นงาน AnimatedVectorDrawable รายการ ก็ได้รับการรองรับใน API ระดับ 11 ขึ้นไปเช่นกัน องค์ประกอบเวกเตอร์อาจเป็น เล็กกว่าชิ้นงานรูปภาพอย่างมากและควรช่วยลดแอป ปรับขนาดได้ด้วยการลดจำนวนเนื้อหาที่จำเป็นสำหรับการรองรับ หน้าจออุปกรณ์
  • ตอนนี้ไลบรารีนี้ได้เป็นทรัพยากร Dependency ของไลบรารี AppCompat v7 แล้ว นักพัฒนาแอปและ AppCompat ใช้เวกเตอร์ที่ถอนออกได้ หากต้องการใช้ VectorDrawableCompat ภายใน ImageButton หรือ ImageView โปรดใช้ app:srcCompat XML หรือ setImageResource()
  • หากต้องการอ้างอิงรหัสแอตทริบิวต์ใน API ระดับ 20 หรือ ให้ต่ำลง ให้เพิ่ม Flag appt ต่อไปนี้ในไฟล์ build,gradle
    • ถ้าคุณกำลังสร้างด้วยปลั๊กอิน Android สำหรับ Gradle 1.5.0 หรือ ที่ด้านล่าง ให้เพิ่มค่าต่อไปนี้ลงในไฟล์ build.gradle
    • android {
        defaultConfig {
          // Stops the Gradle’s automatic rasterization of vectors
          generatedDensities = []
        }
         // Flag that tells aapt to keep the attribute ids
        aaptOptions {
          additionalParameters "--no-version-vectors"
        }
      }
      
    • ถ้าคุณกำลังสร้างด้วยปลั๊กอิน Android สำหรับ Gradle 2.0.0 หรือ สูงขึ้น ให้เพิ่มค่าต่อไปนี้ลงในไฟล์ build.gradle
    • android {
        defaultConfig {
          vectorDrawables.useSupportLibrary = true
        }
      }
      
การเปลี่ยนแปลงสำหรับ v17 Leanback คลัง:
  • เพิ่มความสามารถใหม่ให้กับ GuidedStepFragment ซึ่งเป็นองค์ประกอบหนึ่งที่นำผู้ใช้เข้าสู่การตัดสินใจหรือชุดการตัดสินใจ
    • เพิ่มการทำงานของปุ่มใน GuidedAction แล้ว:
      • GuidedStepFragment.setButtonActions(): กำหนดรายการ GuidedAction ปุ่มที่ ผู้ใช้อาจเลือกจากมุมมองการดำเนินการ
    • คุณแก้ไขช่องคำอธิบายได้แล้ว
      • GuidedAction.Builder.descriptionEditable(): เมื่อผ่าน true กำหนดให้แก้ไขคำอธิบายการดำเนินการได้
      • GuidedAction.getEditDescription(): แสดงผล URL ที่แก้ไขได้ คำอธิบายเป็น CharSequence
    • เพิ่มรายการแบบเลื่อนลงของการกระทำย่อยดังนี้
      • GuidedAction.setSubActions(): ตั้งค่ารายการ GuidedAction เป็นเมนูแบบเลื่อนลง ของการดำเนินการย่อย
  • เพิ่มวิดเจ็ต GuidedDatePickerAction สำหรับฟังก์ชันการทำงานของ DatePicker:
    • เลือกวันที่โดยใช้คอลัมน์ปี เดือน และวัน และมีแอตทริบิวต์ ช่วงที่ปรับแต่งได้
    • GuidedDatePickerAction.Builder: คลาสเครื่องมือสร้างสำหรับออบเจ็กต์ GuidedDatePickerAction
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat): ตั้งค่ารูปแบบวันที่ที่ต้องการโดยการส่ง String ที่มีอักขระ 3 ตัวที่เหมาะสม เช่น “YMD” หรือ “MDY” หรือจะใช้แอตทริบิวต์ XML datePickerFormat ก็ได้
การเปลี่ยนแปลงสำหรับ v7 RecyclerView ไลบรารีต่อไปนี้
  • ตอนนี้ RecyclerView มีตัวเลือกให้เลือกรับแล้ว ฟีเจอร์ชื่อ AutoMeasure ซึ่งช่วยให้ RecyclerView.LayoutManager รวมได้อย่างง่ายดาย เนื้อหาหรือจัดการข้อกำหนดการวัดต่างๆ ที่กำหนดโดย ผู้ปกครองของ RecyclerView ทั้งนี้ รองรับความสามารถด้านภาพเคลื่อนไหวที่มีอยู่ทั้งหมดของ RecyclerView
    • หากคุณมี RecyclerView.LayoutManager ที่กำหนดเอง โทรหา setAutoMeasureEnabled(true) เพื่อเริ่มใช้ AutoMeasure API ออบเจ็กต์ RecyclerView.LayoutManager ในตัวทั้งหมด เปิดใช้การวัดอัตโนมัติโดยค่าเริ่มต้น
    • RecyclerView.LayoutManager จะไม่ละเว้นการตั้งค่า RecyclerView.LayoutParams บางอย่างอีกต่อไป เช่น MATCH_PARENT ในทิศทางการเลื่อน

      หมายเหตุ: ข้อจำกัดที่ถูกยกเลิกเหล่านี้อาจทำให้ ลักษณะการทำงานที่ไม่คาดคิดในเลย์เอาต์ อย่าลืมระบุ พารามิเตอร์การจัดวางที่ถูกต้อง

  • เมื่ออัปเดต RecyclerView.ViewHolder ด้วยเพย์โหลด ข้อมูล DefaultItemAnimator ปิดใช้การเปลี่ยนภาพเคลื่อนไหว
  • ขณะนี้คุณสามารถแก้ไขความเร็วหลุดพ้นของ ItemTouchHelper เป็น ควบคุมความไวในการปัด หากต้องการให้ปัดง่ายขึ้นหรือยากขึ้น ลบล้าง getSwipeEscapeVelocity(float defaultValue) และแก้ไข defaultValue

การแก้ไข 23.1.1

พฤศจิกายน 2015

การเปลี่ยนแปลงสำหรับไลบรารี Recyclerview V7 มีดังนี้
  • แก้ไขข้อขัดข้องที่เกิดขึ้นเมื่อคุณดำเนินการแบบเลื่อนเพื่อปิด คลาสยูทิลิตี ItemTouchHelper จะมีให้ แล้วเพิ่มรายการเข้าไป (ปัญหา 190500)
การเปลี่ยนแปลงสำหรับไลบรารีค่ากำหนด v7 มีดังนี้
การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน Leanback เวอร์ชัน 17 มีดังนี้
  • แก้ไขปัญหาภายในจำนวนหนึ่งในไลบรารีนี้แล้ว
การเปลี่ยนแปลงในไลบรารีการสนับสนุนการออกแบบ
  • เพิ่มเมธอด getHeaderView ลงในคลาส NavigationView แล้ว
  • แก้ไขปัญหาพื้นหลังโปร่งใสสำหรับออบเจ็กต์ FloatingActionButton ใน อุปกรณ์ที่ใช้ Android 4.0 (API ระดับ 15) และต่ำกว่า (ปัญหา 183315)

การแก้ไข 23.1.0

ตุลาคม 2015

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4
  • เพิ่มการรองรับอินเทอร์เฟซของ OnScrollChangedListener ลงใน วิดเจ็ต NestedScrollView ทั้งนี้ ช่วยให้คุณได้รับ Callback เมื่อตำแหน่งการเลื่อน X หรือ Y เปลี่ยนไป
  • เพิ่มชั้นเรียน MediaButtonReceiver เพื่อส่งต่อตัวควบคุมการเล่นที่ได้รับแล้ว ไปยังบริการที่จัดการชั้นเรียน MediaSessionCompat MediaSessionCompat ชั้นเรียนมี เครื่องมือสร้างที่สามารถค้นหาตัวรับปุ่มสื่อในไฟล์ Manifest โดยอัตโนมัติ ต ตัวรับปุ่มสื่อเป็นส่วนสำคัญในการจัดการ ตัวควบคุมการเล่นจากการควบคุมฮาร์ดแวร์หรือบลูทูธ
การเปลี่ยนแปลงสําหรับไลบรารี Appcompat v7 มีดังนี้
  • เพิ่มวิดเจ็ต Seekbar และ ImageButton ของดีไซน์ Material
  • อัปเดตวิดเจ็ต ImageView เพื่อรองรับฟีเจอร์การแต้มสี
  • อัปเดตรูปลักษณ์ของวิดเจ็ต SwitchCompat
การเปลี่ยนแปลงสำหรับไลบรารี MediaRouter v7 มีดังนี้
  • เพิ่มฟีเจอร์ต่อไปนี้ในชั้นเรียน MediaRouteChooserDialog แล้ว
    • แสดงหน้ากำลังโหลดขณะค้นหาผู้ให้บริการเส้นทางสื่อ
    • ใส่ไอคอนประเภทอุปกรณ์เพื่อให้ระบุอุปกรณ์ได้ง่ายขึ้น
    • จัดเรียงเส้นทางตามความถี่ในการใช้งานในแอปปัจจุบัน
    • รองรับโหมดแนวนอน
  • เพิ่มฟีเจอร์ต่อไปนี้ในชั้นเรียน MediaRouteControllerDialog แล้ว
    • จดจำการแคสต์หน้าจอและให้คำอธิบายที่เหมาะสม
    • รองรับปกอัลบั้มขนาดต่างๆ และสัดส่วนภาพ และโหลดภาพแบบไม่พร้อมกัน
    • เลือกสีเนื้อหาโดยอัตโนมัติตามสีหลักของแอป
    • ปรับเลย์เอาต์ของกล่องโต้ตอบตามพื้นที่หน้าจอที่มีอยู่ในอุปกรณ์
    • รองรับโหมดแนวนอน
การเปลี่ยนแปลงสำหรับไลบรารีจานสี v7:
  • เพิ่มเมธอด setRegion() เพื่อรองรับการแยกสีจาก ของออบเจ็กต์ Bitmap
การเปลี่ยนแปลงสำหรับไลบรารี Recyclerview V7 มีดังนี้
  • เพิ่ม API ภาพเคลื่อนไหวที่ปรับปรุงแล้วลงในคลาส ItemAnimator เพื่อให้ได้ดียิ่งขึ้น การกำหนดค่า:
    • การเปลี่ยนภาพเคลื่อนไหวจะไม่บังคับใช้สำเนา 2 ชุดของออบเจ็กต์ ViewHolder อีกต่อไป ซึ่งจะเปิดใช้ภาพเคลื่อนไหวของเนื้อหารายการ และออบเจ็กต์ ItemAnimator ตัดสินใจว่าจะนำออบเจ็กต์ ViewHolder เดิมมาใช้ซ้ำหรือสร้าง อันใหม่นะ
    • API บันทึกข้อมูลใหม่ช่วยให้คลาส ItemAnimator มีความยืดหยุ่น เพื่อเก็บรวบรวมข้อมูล ณ จุดที่ถูกต้องในวงจรของเลย์เอาต์ นี่เป็นข้อมูลในภายหลัง ผ่านไปยัง Callback แบบเคลื่อนไหว
  • มีแผนการเปลี่ยนแปลงที่ง่ายดายสำหรับการเปลี่ยนแปลง API ที่เข้ากันไม่ได้แบบย้อนหลังนี้:
    • หากก่อนหน้านี้คุณได้ขยายชั้นเรียน ItemAnimator คลาสพื้นฐานเป็น SimpleItemAnimator และโค้ดควรทำงานเหมือนเดิม คลาส SimpleItemAnimator มี API เก่าโดยการรวม API ใหม่
    • นำบางวิธีการออกจากชั้นเรียน ItemAnimator แล้ว ดังต่อไปนี้ จะไม่คอมไพล์โค้ดอีกต่อไป
    • Kotlin

      recyclerView.itemAnimator.supportsChangeAnimations = false
      

      Java

      recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
      

      ให้ใช้วิธีต่อไปนี้แทน

      Kotlin

      val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator
      animator?.supportsChangeAnimations = false
      

      Java

      ItemAnimator animator = recyclerView.getItemAnimator();
      if (animator instanceof SimpleItemAnimator) {
         ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
      }
      
การเปลี่ยนแปลงสำหรับ v7 v14 และ ไลบรารีการสนับสนุนค่ากำหนด v17:
  • นำ API ออกเพื่อควบคุมกล่องโต้ตอบ EditText แล้ว
การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน Leanback เวอร์ชัน 17 มีดังนี้
  • เพิ่มเวอร์ชันของคลาส GuidedStepFragment สำหรับไลบรารีการสนับสนุนแล้ว (ขยาย android.support.v4.app.Fragment) ตลอดจนภาพเคลื่อนไหวที่ได้รับการปรับปรุง และ การเปลี่ยนแปลง
  • อัปเดตชั้นเรียน GuidedStepFragment แล้วเพื่อให้อยู่ด้านบนได้ เนื้อหาที่มีอยู่
  • เพิ่มความสามารถในการใส่คำอธิบายประกอบในการค้นหาประเภทต่างๆ ลงใน SearchFragment ชั้นเรียน
  • เพิ่มการรองรับการเปลี่ยนสไลด์แบบสลับไปมาใน VerticalGridFragment
การเปลี่ยนแปลงในไลบรารีการสนับสนุนการออกแบบ
  • เพิ่มเมื่อ การนับอักขระ สนับสนุนวิดเจ็ต TextInputLayout
  • เพิ่มการรองรับการสแนปขอบไปยังคลาส AppBarLayout โดยการเพิ่ม ค่าคงที่ SCROLL_FLAG_SNAP เมื่อการเลื่อนสิ้นสุด หากมุมมองคือ มองเห็นได้บางส่วน มุมมองจะสแนปและเลื่อนไปยังขอบที่ใกล้ที่สุด
  • เพิ่มการสนับสนุนสำหรับมุมมองที่กำหนดเองในชั้นเรียน NavigationView โดยใช้ แอตทริบิวต์ app:actionLayout หรือ MenuItemCompat.setActionView()
การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุนแท็บที่กำหนดเอง
  • เพิ่มเมธอด enableUrlBarHiding() ลงใน CustomTabsIntent แล้ว ช่วยให้ลูกค้าปรับแต่งว่าควรซ่อนแถบ URL โดยอัตโนมัติหรือไม่ เมื่อเลื่อนลง
  • เพิ่มเมธอด setActionButton() ลงใน CustomTabsSession แล้ว ซึ่งช่วยให้ไคลเอ็นต์ เปลี่ยนไอคอนของปุ่มการทำงานที่กำหนดเองในแท็บที่กำหนดเองซึ่งเปิดใช้แล้ว
  • เพิ่มค่าคงที่ TAB_SHOWN และ TAB_HIDDEN เป็นเหตุการณ์ใหม่แล้ว สำหรับเมธอด onNavigationEvent ของ CustomTabsCallback

การแก้ไข 23.0.1

กันยายน 2015

การเปลี่ยนแปลงสำหรับ v7 และ ไลบรารีการสนับสนุนค่ากำหนด v14:
  • เพิ่มเลย์เอาต์ของดีไซน์ Material และไฟล์รูปแบบ (ปัญหา 183376)
การเปลี่ยนแปลงสําหรับไลบรารี Appcompat v7 มีดังนี้
  • แก้ปัญหาข้อขัดข้องสำหรับคลาส Fragment ด้วยการจำกัดการใช้งาน เลเยอร์ฮาร์ดแวร์ไปยัง Android 4.1 (API ระดับ 16) ขึ้นไป (ปัญหา 183896)
  • แก้ไขปัญหาที่ปุ่มฮาร์ดแวร์ไม่ทำงานเมื่อกิจกรรมตั้งค่า Toolbar ชั้นเรียนสำหรับใช้เป็น ActionBar โดยใช้เมธอด setSupportActionBar() (ปัญหา 183334)
  • อัปเดตชั้นเรียน AppCompatDialogFragment แล้ว ไม่ใช้ Windows feature must be requested before adding content อีกต่อไป (ปัญหา 183186)
การเปลี่ยนแปลงในไลบรารีการสนับสนุนการออกแบบ
  • แก้ไข AppBarLayout คลาส ดังนั้นตอนนี้จึงวาดได้อย่างถูกต้องหลังจาก การหมุน (ปัญหา 183109)
  • แก้ไข TabLayout ชั้นเรียนจึงจะทำงานได้อย่างถูกต้องเมื่อ ผู้ใช้คลิกหลังจากปัดนิ้ว (ปัญหา 183123)
การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุนแท็บที่กำหนดเอง
  • ลด minSdkVersion ค่าตั้งแต่ 16 ถึง 15 สำหรับการรองรับเวอร์ชัน
  • เพิ่มวิธีสร้าง CustomTabsSessionToken จาก Intent

การแก้ไข 23

สิงหาคม 2015

ไลบรารีการสนับสนุนใหม่ที่เพิ่ม:

สำหรับรายการการเปลี่ยนแปลงทั้งหมดของไลบรารีการสนับสนุน โปรดดูที่ การสนับสนุน รายงานความแตกต่างของ Library API

การแก้ไข 22.2.1

กรกฎาคม 2015

การเปลี่ยนแปลงในไลบรารีการสนับสนุนการออกแบบ
  • เพิ่มเมธอด hide() และ show() ลงใน FloatingActionButton คลาสสำหรับแบบเป็นโปรแกรม การทริกเกอร์ภาพเคลื่อนไหว
  • เพิ่มค่าคงที่ LENGTH_INDEFINITE ลงใน คลาส Snackbar สำหรับการแสดงแถบแสดงข้อความ จนกว่าจะปิดหรือแถบแสดงแถบอื่นแสดง นอกจากนี้ ยังได้เพิ่ม setActionTextColor(int) และ วันที่ setActionTextColor(ColorStateList)
  • เพิ่มเมธอด getSelectedTabPosition() ลงใน TabLayoutสำหรับการเรียกข้อมูล แท็บที่เลือกไว้
  • มี API ที่สมบูรณ์สำหรับ android.support.v7.app.NotificationCompat.MediaStyle คลาสสำหรับเมธอด การทำสายโซ่
  • เพิ่มวิธีการอำนวยความสะดวกให้กับ RecyclerView สำหรับการแทรกรายการเป็นกลุ่ม

สำหรับรายการการเปลี่ยนแปลงทั้งหมดของไลบรารีการสนับสนุน โปรดดูที่ การสนับสนุน รายงานความแตกต่างของ Library API

การแก้ไข 22.2.0

พฤษภาคม 2015

เพิ่มไลบรารีการสนับสนุนการออกแบบแล้ว
  • เพิ่ม TextInputLayout เพื่อแสดง EditText คำแนะนำและข้อความแสดงข้อผิดพลาดเป็นป้ายกำกับแบบลอย
  • เพิ่ม FloatingActionButton สําหรับการติดตั้งใช้งาน การกระทำหลักบนอินเทอร์เฟซ ปุ่มการทำงานแบบลอย รองรับขนาดเริ่มต้นหรือขนาดเล็ก
  • เพิ่ม Snackbar สำหรับการให้น้ำหนักเบา ความคิดเห็นพร้อมด้วยการดำเนินการที่ไม่บังคับในแถบแสดงข้อความแบบเคลื่อนไหว
  • เพิ่ม TabLayout สําหรับการติดตั้งใช้งานที่แก้ไขแล้วและ เลื่อนได้ แท็บรวมถึงแบบง่าย การผสานรวมกับ ViewPager
  • เพิ่ม NavigationView สําหรับการใช้งานแล้ว ลิ้นชักการนำทาง ซึ่งรวมถึงความสามารถในการเพิ่มรายการในเมนูผ่าน แหล่งข้อมูลเมนู
  • เพิ่ม CoordinatorLayout แล้ว ซึ่งเป็นจุดประสงค์ทั่วไป ซึ่งใช้สำหรับสร้างทรัพยากร Dependency ระหว่าง การดูระดับเดียวกัน และช่วยให้สามารถเลื่อนรีแอ็กชันระหว่างคอมโพเนนต์ต่างๆ ได้อย่างง่ายดายผ่าน CoordinatorLayout.Behavior ออกแบบได้หลากหลาย คอมโพเนนต์ไลบรารีขึ้นอยู่กับการเป็นองค์ประกอบย่อยของ CoordinatorLayout
  • เพิ่ม AppBarLayout ซึ่งเป็นคอนเทนเนอร์สำหรับ วันที่ Toolbar และมุมมองอื่นๆ (เช่น TabLayout) สำหรับ รีแอ็กต่อเหตุการณ์แบบเลื่อนโดยการเลื่อนหน้าจอ ทำให้มองเห็นได้ในรีแอ็กชัน เพื่อเลื่อนลงด้านล่าง หรือยุบ/ยกเลิกการยุบก่อนเลื่อนปิด/ไปยังหน้าจอ
  • เพิ่ม CollapsingToolbarLayout สำหรับการควบคุมแล้ว การยุบของ Toolbar แถบเครื่องมืออาจยุบในกรณีต่อไปนี้ การปักหมุดคอมโพเนนต์ไว้ที่ด้านบนของหน้าจอขณะยุบ การเลื่อนพารัลแลกซ์ของคอมโพเนนต์ เช่น ImageView หรือเพิ่มสีขอบของเนื้อหาเมื่อมุมมองยุบบางส่วน
การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4 มีดังนี้
การเปลี่ยนแปลงในไลบรารี Appcompat v7 มีดังนี้

สำหรับรายการการเปลี่ยนแปลงทั้งหมดของไลบรารีการสนับสนุน โปรดดูที่ การสนับสนุน รายงานความแตกต่างของ Library API

การแก้ไข 22.1.0

เมษายน 2015

การเปลี่ยนแปลงในคลังคำอธิบายประกอบมีดังนี้
  • เพิ่มไลบรารีคำอธิบายประกอบเพื่อให้การสนับสนุนสำหรับการตรวจสอบโค้ดที่ปรับปรุงแล้ว คำอธิบายประกอบจะถูกเพิ่มเป็นแท็กข้อมูลเมตาที่คุณแนบไปกับตัวแปร พารามิเตอร์ และแสดงผลค่าเพื่อตรวจสอบเมธอดผลลัพธ์ พารามิเตอร์ที่ส่ง และในเครื่อง ตัวแปรและฟิลด์ต่างๆ
การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4 มีดังนี้
  • เพิ่มชั้นเรียน ColorUtils เพื่อแสดงชุดวิธียูทิลิตีที่เกี่ยวกับสี
  • เพิ่ม unwrap() และ wrap() วิธีไปยัง DrawableCompat คลาส คุณสามารถใช้ setTint(), setTintList(), และ setTintMode() ในอุปกรณ์ API ระดับ 4 ขึ้นไปทั้งหมด
  • เพิ่มชั้นเรียน TraceCompat ไปยัง เขียนเหตุการณ์การติดตามลงในบัฟเฟอร์การติดตามของระบบ ซึ่งหลังจากนั้นจะรวบรวมและ แสดงภาพโดยใช้เครื่องมือ Systrace
  • เพิ่มชั้นเรียน CircularIntArray เพื่อสร้างโครงสร้างข้อมูลอาร์เรย์จำนวนเต็มวงกลม
  • เพิ่ม clear() แล้ว removeFromStart(), และ removeFromEnd() ไปยังคลาส CircularArray นอกจากนี้ ได้เปลี่ยน เมธอดที่มีอยู่แล้วในชั้นเรียนนี้จะต้องไม่เป็นขั้นสุดท้าย
  • เพิ่ม InputDeviceCompat เป็นคลาสตัวช่วยเข้าถึงข้อมูลใน ชั้นเรียนInputDeviceCompat
  • เพิ่ม LayoutInflaterCompat เป็นคลาสตัวช่วยเข้าถึงข้อมูลใน ชั้นเรียน LayoutInflaterCompat รายการ และเพิ่มอินเทอร์เฟซ LayoutInflaterFactory แล้ว
  • เพิ่มคลาส เมธอด และอินเทอร์เฟซเพื่อรองรับการเลื่อนที่ซ้อนกัน
    • เพิ่ม NestedScrollingChildHelper และ NestedScrollingParentHelper คลาสตัวช่วยสำหรับการใช้งานมุมมองหลักและมุมมองย่อยแบบเลื่อนที่ซ้อนกัน
    • เพิ่ม NestedScrollingChild ที่จะใช้งานโดยคลาสย่อย View รายการ
    • เพิ่ม NestedScrollingParent และอินเทอร์เฟซ ScrollingView รายการเพื่อรองรับ การดำเนินการเลื่อนและระบุ API ที่เกี่ยวข้องกับการเลื่อน
    • เพิ่ม เมธอด getNestedScrollAxes() ไปยัง ViewGroupCompat
    • เพิ่มเมธอดในคลาส ViewParentCompat ไปยัง รองรับการเลื่อนแบบฝัง
    • เพิ่ม NestedScrollView เพื่อรองรับการเลื่อนแบบซ้อนระดับบนสุดและผู้เผยแพร่โฆษณาย่อยทั้งในเวอร์ชันใหม่และเวอร์ชันเก่า Android
  • เพิ่มวิธีการและค่าคงที่ใน MotionEventCompat สำหรับการรับค่าแกนและแหล่งที่มาของเหตุการณ์
  • อัปเดต AccessibilityNodeInfoCompat เพื่อเพิ่มเมธอดสำหรับข้อผิดพลาด การทำให้เนื้อหาใช้งานไม่ได้ และป้ายกำกับ
  • เพิ่มคลาสการประมาณค่าในช่วงต่อไปนี้สำหรับภาพเคลื่อนไหว: FastOutLinearInInterpolator, FastOutSlowInInterpolator, LinearOutSlowInInterpolator, LinearOutSlowInInterpolator และ PathInterpolatorCompat
  • เพิ่มชั้นเรียน Space เพื่อสร้างช่องว่างระหว่าง ในเลย์เอาต์อเนกประสงค์ เลิกใช้งานคลาสนี้ในคลัง Gridlayout แล้ว
  • เพิ่มชั้นเรียน TextViewCompat สำหรับการเข้าถึงแล้ว ใน TextView
  • เพิ่มพารามิเตอร์การกระจัดใน onPull() ใน ชั้นเรียนEdgeEffectCompat
การเปลี่ยนแปลงในไลบรารี Appcompat v7 มีดังนี้
  • เพิ่มการรองรับการแต้มสีในวิดเจ็ตความเข้ากันได้กับแอป ซึ่งรวมถึง AppCompatAutoCompleteTextView, AppCompatButton, AppCompatCheckBox, AppCompatCheckedTextView, AppCompatEditText, AppCompatMultiAutoCompleteTextView, AppCompatRadioButton AppCompatRatingBar, AppCompatSpinner และ AppCompatTextView
  • อัปเดต AppCompatActivity เป็นฐาน สำหรับกิจกรรมที่ใช้ฟีเจอร์แถบการทำงานของไลบรารีการสนับสนุน ชั้นเรียนนี้ แทนที่ ActionBarActivity ที่เลิกใช้งานแล้ว
  • เพิ่ม อินเทอร์เฟซ AppCompatCallback สำหรับ AppCompat เพื่อให้ดำเนินการเรียกกลับได้
  • เพิ่ม คลาสนามธรรม AppCompatDelegate คลาส เป็นผู้รับมอบสิทธิ์ที่คุณสามารถใช้เพื่อขยายการสนับสนุนของ AppCompat ไปยังกิจกรรมใดก็ได้
  • เพิ่ม AppCompatDialog ชั้นเรียน เป็นคลาสพื้นฐานสำหรับกล่องโต้ตอบธีม AppCompat
  • เพิ่มรูปแบบไอคอนหมุนแล้ว AlertDialog และ AlertDialog.Builder คลาสสำหรับจัดเตรียม AppCompat ธีม AlertDialog
  • เพิ่มชั้นเรียน Palette.Builder สำหรับการสร้างอินสแตนซ์ Palette รายการ
    • เพิ่ม from(Bitmap) ลงในคลาส Palette เพื่อ เริ่มสร้างจานสีด้วยผลลัพธ์ Palette.Builder อินสแตนซ์
    • เลิกใช้งาน Palette.generate() และ Palette.generateAsync() วิธี
  • เพิ่ม เมธอด getAbsoluteAlignment() ไปยัง GridLayout.Spec
  • เลิกใช้งาน app:theme สำหรับการจัดรูปแบบ Toolbar ตอนนี้คุณใช้ android:themeสำหรับแถบเครื่องมือใน API ระดับ 7 ขึ้นไปทั้งหมด และ android:theme รองรับวิดเจ็ตทั้งหมดในอุปกรณ์ API ระดับ 11 ขึ้นไป
การเปลี่ยนแปลงสำหรับไลบรารี Leanback v17 มีดังนี้
  • เพิ่ม GuidedStepFragment แล้ว GuidanceStylist และ GuidedActionsStylistเพื่อรับการสนับสนุน เพื่อสร้างกระบวนการตัดสินใจแบบหลายขั้นตอน
การเปลี่ยนแปลงสำหรับไลบรารี Recyclerview V7 มีดังนี้
  • เพิ่ม SortedList ชั้นเรียนเพื่อแสดงรายการใน ลำดับรายการ และให้การแจ้งเตือนการเปลี่ยนแปลงในรายการ
  • เพิ่มชั้นเรียน SortedListAdapterCallback ซึ่งสามารถเชื่อมโยงรายการที่จัดเรียงแล้วกับ ชั้นเรียนRecyclerView.Adapter
การเปลี่ยนแปลงสำหรับไลบรารีเรนเดอร์ V8 มีดังนี้
  • เพิ่มชั้นเรียน ScriptIntrinsicHistogram สำหรับ ใช้เป็นตัวกรองฮิสโตแกรม
  • เพิ่มชั้นเรียน ScriptIntrinsicResize สำหรับ การปรับขนาดการจัดสรรแบบ 2 มิติ

การแก้ไข 22

มีนาคม 2015

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4 มีดังนี้
  • อัปเดตเมธอด getDrawable() เพื่อแสดงผลออบเจ็กต์ที่ถอนออกได้สำหรับรหัสทรัพยากรที่เจาะจง ความหนาแน่นของหน้าจอ และธีม
  • เพิ่มเมธอด setImportantForAccessibility() เพื่อให้คุณระบุได้ว่าควรทริกเกอร์การดูหรือไม่ เหตุการณ์การช่วยเหลือพิเศษ
  • เพิ่มเมธอด getStatusBarBackgroundDrawable() เพื่อให้คุณได้รับพื้นหลังของแถบสถานะ ถอนออกได้
  • เพิ่มเมธอดลงใน NotificationCompat.CarExtender.UnreadConversation เพื่อให้แอปรับส่งข้อความของ Android Auto เรียกดูข้อมูลการแจ้งเตือนเพิ่มเติมได้
  • เพิ่มเมธอด getProgressCircleDiameter() เพื่อแสดงเส้นผ่านศูนย์กลางของเลย์เอาต์วงกลม
  • เปลี่ยน DrawerLayout เริ่มต้นแล้ว สีแถบสถานะเป็น colorPrimaryDark
การเปลี่ยนแปลงในไลบรารี Appcompat v7 มีดังนี้
การเปลี่ยนแปลงสำหรับไลบรารี Leanback v17 มีดังนี้
  • เพิ่ม getRecycledPoolSize() และ setRecycledPoolSize() วิธีอนุญาตขนาดพูลที่รีไซเคิลที่กำหนดเอง
  • เพิ่มแอตทริบิวต์ WRAP_CONTENT ลงใน ตั้งค่าความกว้างของเลย์เอาต์เพื่อรองรับเนื้อหาที่รวมไว้สำหรับไอคอนชื่อ
  • กำหนด R.transition ใน XML เป็น ปรับปรุงการอัปเดตการเปลี่ยนแปลง
  • เปิดใช้การสนับสนุนสำหรับเลย์เอาต์จากขวาไปซ้าย
  • เพิ่มการรองรับเหตุการณ์สําคัญของสื่อที่เล่นและหยุดชั่วคราวใน PlaybackOverlayFragment ชั้นเรียน
  • เพิ่มการเปลี่ยนโหมดเข้าและกลับลงใน BrowseFragment ชั้นเรียนและ ชั้นเรียนDetailsFragment
  • เพิ่มเมธอด replace() เพื่อแทนที่รายการในอาร์เรย์อะแดปเตอร์ของออบเจ็กต์
การเปลี่ยนแปลงสำหรับไลบรารี mediaRouter v7 มีดังนี้
การเปลี่ยนแปลงสำหรับไลบรารี Recyclerview V7 มีดังนี้

การแก้ไข 21.0.3

ธันวาคม 2014

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4 มีดังนี้

การแก้ไข 21.0.2

พฤศจิกายน 2014

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4 มีดังนี้
  • เพิ่มเมื่อ NotificationCompat.CarExtender เพื่อรองรับส่วนขยาย Android Auto ไปยังการแจ้งเตือน
การเปลี่ยนแปลงในไลบรารี Appcompat v7 มีดังนี้
  • เพิ่มตัวสร้าง PopupMenu เพื่อรองรับป๊อปอัปใหม่แล้ว เมนู
  • เพิ่มการรองรับคำอธิบายไอคอนยุบในToolbar
  • อัปเดตวิดเจ็ต SearchView เพื่อรองรับการแสดง commitIcon
  • นำแอตทริบิวต์ buttonGravity ออกจาก ชั้นเรียนToolbar
การเปลี่ยนแปลงสำหรับไลบรารีการ์ดการแสดงผล V7 มีดังนี้
  • เพิ่ม setCardBackgroundColor(ColorStateList) API ไปยัง รองรับการเปลี่ยนสีพื้นหลังของ CardView
  • เปลี่ยนCardViewให้รายงานได้แม่นยํามากขึ้นแล้ว ค่าความทึบแสงเป็น TRANSLUCENT
การเปลี่ยนแปลงสำหรับ recyclerview v7 ไลบรารีต่อไปนี้
  • เพิ่ม TOUCH_SLOP_DEFAULT และ ค่าคงที่ TOUCH_SLOP_PAGING ในชั้นเรียน RecyclerView เพื่อรองรับการกำหนดค่า Touch slop สำหรับการแบ่งหน้า
การเปลี่ยนแปลงสำหรับไลบรารี Leanback v17 มีดังนี้
  • เพิ่มการรองรับเพื่อสร้าง Fragment ของโค้ด v4
  • เปลี่ยนสีข้อความรองใน CardView

การแก้ไข 21.0.1

พฤศจิกายน 2014

เพิ่มเมื่อ ไลบรารีการสนับสนุน Multidex เพื่อรองรับ ไฟล์ปฏิบัติการ (Dalvik) ของ Dalvik สำหรับการสนับสนุนไฟล์ Multi-dex ก่อน Android 5.0

การแก้ไข 21

ตุลาคม 2014

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4 มีดังนี้
  • เพิ่มการรองรับ Fragment แล้ว การเปลี่ยนสำหรับอุปกรณ์ที่ใช้ Android 5.0 (API ระดับ 21) โปรดทราบว่าการเปลี่ยนจะไม่มีผลต่ออุปกรณ์ที่ใช้ Android 4.4 และต่ำกว่า
  • เพิ่ม DocumentFile เพื่อค่อยๆ เปลี่ยนแล้ว การเปลี่ยนจาก File ขณะที่ทำงานกับโครงสร้างเอกสาร แต่คลาสนี้ต้องการ ต้นทุนในการดำเนินการที่มากขึ้นเมื่อเทียบกับ เพิ่ม API DocumentsContract รายการใน Android 4.4 (API ระดับ 19) คุณจึงควรเปลี่ยนไปใช้ DocumentsContract เมื่อทำงานบน Android 4.4 และสูงกว่า
การเปลี่ยนแปลงสำหรับ v7 appcompat ไลบรารีต่อไปนี้
  • เพิ่มการรองรับ material แล้ว ออกแบบอินเทอร์เฟซผู้ใช้
  • เพิ่ม Toolbar แล้ว ซึ่งเป็นข้อมูลทั่วไป ฟังก์ชันของ ActionBar สำหรับ ใช้ภายในเลย์เอาต์ของแอป
  • อัปเดต ActionBarDrawerToggle ซึ่งมีภาพเคลื่อนไหวแบบเมนูต่อลูกศร
  • อัปเดตวิดเจ็ตอินเทอร์เฟซผู้ใช้ทั่วไปเพื่อให้ปรับแต่งผ่านธีมได้ เมื่อทำงานบนอุปกรณ์ก่อน Android 5.0
  • เพิ่ม SwitchCompat ซึ่งเป็นแบ็กพอร์ตแล้ว ของวิดเจ็ต Switch ที่เพิ่มไว้ใน Android 4.0 (API ระดับ 14)
ไลบรารีมุมมองการ์ด V7 ใหม่:
  • เพิ่มวิดเจ็ต CardView ให้การใช้งานที่เข้ากันได้กับดีไซน์ Material สำหรับการแสดง รายการข้อมูล
มุมมองรีไซเคิล v7 ใหม่ ไลบรารีต่อไปนี้
  • เพิ่มวิดเจ็ต RecyclerView ซึ่งจะให้มุมมองรายการที่ยืดหยุ่นสำหรับใส่กรอบเวลาที่จำกัด ลงในชุดข้อมูลขนาดใหญ่
ไลบรารีจานสี v7 ใหม่:
  • เพิ่ม Palette ชั้นเรียนแล้ว ซึ่งช่วยให้คุณแยกสีที่โดดเด่นออกจากรูปภาพได้
ไลบรารี Leanback v17 ใหม่:

การแก้ไข 20

กรกฎาคม 2014

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • เพิ่มการรองรับการแจ้งเตือนเพิ่มเติมสำหรับ Android Wear ใน NotificationCompat.WearableExtender ซึ่งช่วยให้คุณ เพื่อระบุฟีเจอร์เฉพาะสำหรับอุปกรณ์ที่สวมใส่ได้ในการแจ้งเตือน
  • เพิ่ม NotificationCompat.Action.WearableExtender แล้ว ซึ่งทำให้เพิ่มการดำเนินการในการแจ้งเตือนของอุปกรณ์ที่สวมใส่ได้
  • เพิ่ม NotificationManagerCompat แล้วซึ่งช่วยให้คุณ เพื่อออกการแจ้งเตือนที่รองรับฟีเจอร์ที่สวมใส่ได้อย่างเหมาะสม
  • เพิ่ม RemoteInput แล้ว ซึ่งอนุญาตให้ใช้อุปกรณ์พกพา ในการรับการป้อนข้อมูลด้วยเสียงจากการแจ้งเตือนที่ปรากฏในอุปกรณ์ที่สวมใส่ได้
  • ปรับปรุงการจัดการการตอบสนองเมื่อแตะใน SwipeRefreshLayout

การแก้ไข 19.1.0

มีนาคม 2014

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • เพิ่มชั้นเรียน SwipeRefreshLayout แล้ว ซึ่งช่วยให้ผู้ใช้รีเฟรชเนื้อหาของมุมมองด้วยแนวตั้งได้ ท่าทางสัมผัสการปัด
  • แก้ปัญหาการช่วยเหลือพิเศษเกี่ยวกับลิ้นชักการนำทาง
การเปลี่ยนแปลงสำหรับไลบรารี Appcompat v7 มีดังนี้
  • แก้ปัญหาพื้นหลังของแถบการทำงาน

การแก้ไข 19.0.1

ธันวาคม 2013

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • ปรับปรุง PrintHelper ด้วยการเพิ่มอะซิงโครนัส การจัดการการพิมพ์
  • แก้ไขการประมาณค่าคลาส DrawerLayout ของ addChildrenForAccessibility()
  • แก้ไขการมิเรอร์สไลด์ที่ถอนออกได้ใน ActionBarDrawerToggle
  • แก้ไขปัญหาทีละรายการเมื่อนำรายการออกจากตัวทำซ้ำคอลเล็กชัน
การเปลี่ยนแปลงสำหรับไลบรารี MediaRouter v7 มีดังนี้
  • ปรับปรุงการระบุเส้นทางโดยใช้ชื่อเต็มของคอมโพเนนต์ใน MediaRouteProvider.ProviderMetadata
  • อัปเดต MediaRouteChooserDialog เพื่อซ่อนที่ปิดใช้แล้ว เส้นทาง
การเปลี่ยนแปลงสำหรับไลบรารีโหมดแสดงภาพ V8
  • เพิ่มการเผยแพร่ข้อผิดพลาดสำหรับเลเยอร์thunking ของ RenderScript

การแก้ไข 19

ตุลาคม 2013

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • เพิ่มการรองรับสำหรับ Storage API ภายนอกที่มี getObbDirs(), getExternalFilesDirs(), getExternalCacheDirs(), และ getStorageState() เมธอดของตัวช่วยเหล่านี้จะแสดงออบเจ็กต์ไฟล์เดียวเสมอในอุปกรณ์ที่ใช้ Android 4.3 (API ระดับ 18) และเวอร์ชันก่อนหน้า เมื่อใช้ Android 4.4 (API ระดับ 19) ขึ้นไป เมธอดเหล่านี้อาจแสดงผลออบเจ็กต์ไฟล์มากกว่า 1 รายการ
  • เพิ่มคลาส PrintHelper ที่ใช้งานได้กับ Print API เพื่อพิมพ์รูปภาพด้วยโค้ดขั้นต่ำ
  • เพิ่มการสนับสนุนอินเทอร์เฟซผู้ใช้แบบลากเพื่อเปิดสำหรับเมนูป๊อปอัป สำหรับข้อมูลเพิ่มเติม โปรดดู PopupMenuCompat และ ListPopupWindowCompat
  • เพิ่มการสนับสนุนการช่วยเหลือพิเศษด้วยการเพิ่ม findFocus() วิธีใน AccessibilityNodeProviderCompat และ getLiveRegion() วิธีใน AccessibilityNodeInfoCompat
  • เพิ่มคลาสผู้ช่วยเหลือ ScaleGestureDetectorCompat สำหรับ เข้าถึงวิธีท่าทางสัมผัสการปรับขนาดใหม่
  • แก้ไขปัญหาเกี่ยวกับ ActionBarDrawerToggle ใน ภาษาที่แสดงจากขวาไปซ้าย
  • แก้ไขตัวเลือก AutoScrollHelper ในการใช้แล้ว สัมผัสกิจกรรมหรืออนุญาตให้ส่งผ่านไปยังมุมมองอื่น
การเปลี่ยนแปลงสำหรับไลบรารี MediaRouter v7 มีดังนี้
  • เพิ่มการสนับสนุนสำหรับการจัดคิวการเล่นสื่อ การตั้งค่าส่วนหัว HTTP และสื่อ ระยะเวลาการเล่น
  • เพิ่มการดำเนินการอย่างชัดเจนในการเริ่มต้น รับ และสิ้นสุดเซสชันสำหรับการจัดการสื่ออย่างชัดเจน เซสชันการเล่นด้วยเราเตอร์สื่อ

การแก้ไข 18

กรกฎาคม 2013

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • อินเทอร์เฟซผู้ใช้
    • เพิ่ม BidiFormatter สำหรับการจัดการแล้ว สตริงข้อความที่จะผสมผสานข้อความที่มีรูปแบบจากขวาไปซ้ายและซ้ายไปขวา
    • แก้ไข ViewPager เพื่อให้จัดการกรณีที่ เพจเจอร์มีความกว้างที่วัดได้เป็น 0 ในการประมวลผลเลย์เอาต์เริ่มต้น
    • แก้ไขเมื่อ DrawerLayout และ SlidingPaneLayout เพื่อไม่ให้มีการส่งข้อยกเว้น การวัดขณะกำลังแก้ไขโค้ดโปรเจ็กต์
  • การช่วยเหลือพิเศษ
    • เพิ่ม ExploreByTouchHelper เพื่อลดความซับซ้อนของ การนำการช่วยเหลือพิเศษมาใช้สำหรับมุมมองที่กำหนดเอง
    • แก้ไขปัญหาเกี่ยวกับ ViewPager อย่างไม่ถูกต้อง กำลังป้อนข้อมูลเหตุการณ์การช่วยเหลือพิเศษ TYPE_VIEW_SCROLLED รายการ
    • แก้ไขข้อยกเว้นตัวชี้แบบ Null ใน ViewPager เมื่อ กำลังสร้างเหตุการณ์การช่วยเหลือพิเศษ
    • AccessibilityNodeInfoCompat แบบง่าย โดยเปลี่ยนอินพุต CharSequence รายการเป็นออบเจ็กต์ String รายการ
    • เลิกใช้งาน AccessibilityRecordCompat เครื่องมือสร้างที่ใช้ Object เป็นอินพุต
  • สื่อ
    • เพิ่มชั้นเรียนตัวช่วยของ TransportMediator เพื่อจัดการ การควบคุมการส่งสื่อ เช่น เล่น หยุดชั่วคราว ข้าม และการทำงานอื่นๆ สำหรับสื่อ
    • เพิ่ม DisplayManagerCompat สำหรับการจัดการแล้ว แสดงผลไปยังอุปกรณ์อย่างน้อย 1 จอ
  • การเปลี่ยนแปลงอื่นๆ
    • เพิ่มชั้นเรียนผู้ช่วยเหลือ WakefulBroadcastReceiver สำหรับ ใช้รูปแบบทั่วไปของการตรวจจับเหตุการณ์การปลุกระบบของอุปกรณ์และส่งต่อการทำงาน เป็น Service พร้อมกับตรวจสอบว่าอุปกรณ์ไม่กลับไปที่ เข้าสู่โหมดสลีปก่อนที่แฮนด์ออฟจะเสร็จสมบูรณ์
    • เพิ่ม API ใหม่ 2 รายการ commitContentChanged() และ rollbackContentChanged() ถึง AsyncTaskLoader ถึง ช่วยจัดการการอัปเดตในเบื้องหลังสำหรับการเปลี่ยนแปลงข้อมูลที่ถูกยกเลิกในภายหลัง
ไลบรารี Appcompat v7 ใหม่:
ไลบรารี MediaRouter v7 ใหม่:

เพิ่มไลบรารี MediaRouter ใหม่ซึ่งรองรับการแสดงตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ Google Cast API ไลบรารี MediaRouter v7 เป็นวิธีควบคุมการกำหนดเส้นทางของ ช่องทางสื่อและสตรีมจากอุปกรณ์ปัจจุบันไปยังหน้าจอภายนอก ลำโพงและอุปกรณ์ปลายทางอื่นๆ ที่เข้ากันได้ตั้งแต่ Android 2.1 (API ระดับ 7) โปรดดู V7 MediaRouter Library สำหรับข้อมูลเพิ่มเติม

API ไลบรารี MediaRouter v7 ที่เปิดตัวในการสนับสนุน ห้องสมุด r18 อาจมีการเปลี่ยนแปลงสำหรับการสนับสนุนฉบับแก้ไขภายหลัง คลัง ในขณะนี้ เราขอแนะนำให้คุณใช้ไลบรารีเฉพาะเมื่อเชื่อมต่อ ที่มีฟังก์ชัน Google Cast เวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์

การแก้ไข 13

พฤษภาคม 2013

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • เพิ่ม DrawerLayout สำหรับการสร้าง การนำทาง ลิ้นชักที่ดึงเข้าได้จากขอบหน้าต่าง
  • เพิ่มวิดเจ็ต SlidingPaneLayout เพื่อสร้างการลิงก์ มุมมองสรุปและมุมมองรายละเอียดที่ปรับให้เข้ากับหน้าจอขนาดต่างๆ อย่างเหมาะสม
  • เพิ่ม ActionBarDrawerToggle เป็นวิธีผูก รวมฟังก์ชันของ DrawerLayout และ ActionBar
  • เพิ่ม ViewDragHelper เป็นคอมโพเนนต์ใหม่ทั่วไปแล้ว สำหรับการลากมุมมองภายในมุมมองระดับบนสุด
  • เพิ่ม ScrollerCompat เพื่อรองรับความเข้ากันได้กับ Scroller และ OverScroller
  • เพิ่ม FileProvider เพื่ออนุญาตการแชร์แบบส่วนตัวแล้ว ระหว่างแอปพลิเคชันได้ด้วย
  • อัปเดต ViewPager เพื่อส่งข้อยกเว้นหาก คลาส PagerAdapter ที่เชื่อมโยงมีการแก้ไขโดยไม่มี โทรหา notifyDataSetChanged()
  • แก้ปัญหาการจัดเรียงภาพวาดของบุตรหลาน ViewPager รายการ คำสั่งซื้อ
  • แก้ไข GestureDetectorCompat เพื่อการจัดส่งที่หายไปแล้ว การโทร onSingleTapConfirmed(MotionEvent) ครั้ง ระหว่างเหตุการณ์การหมดเวลาการแตะและเหตุการณ์การกดค้าง
ไลบรารีตารางกริด v7 ใหม่:
  • เพิ่ม GridLayout เพื่อสนับสนุน ออบเจ็กต์เลย์เอาต์ GridLayout
  • เพิ่ม android.support.v7.widget.Space แล้ว ซึ่งสามารถใช้เพื่อสร้างพื้นที่ว่างได้ ภายในออบเจ็กต์เลย์เอาต์ GridLayout

การแก้ไข 12

กุมภาพันธ์ 2013

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • ปรับปรุงพฤติกรรมการโต้ตอบของ ViewPager
  • แก้ไขข้อบกพร่องที่อาจทำให้ ViewPager เลือก ผิดหน้า
  • การใช้เมธอด removeView() แบบคงที่ ระหว่างการออกแบบสำหรับ ViewPager
  • แก้ไขปัญหาเกี่ยวกับ SearchViewCompat ซึ่งการใช้ ปุ่มย้อนกลับเพื่อปิดไม่ล้างข้อความค้นหา การแก้ไขนี้ใช้กับ API ของโฮสต์ระดับ 14 ขึ้นไป

การแก้ไข 11

พฤศจิกายน 2012

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • อินเทอร์เฟซผู้ใช้
    • เพิ่มการรองรับสำหรับ Fragment ชั้นเรียนที่ฝังอยู่
    • เพิ่มการปรับปรุงการแก้ไขข้อบกพร่อง FragmentManager
    • แก้ไขปัญหาใน FragmentTabHost ที่มีส่วนย่อย และการโต้ตอบกับแท็บอาจส่งผลให้สูญเสียสถานะ ListView
    • แก้ปัญหาเกี่ยวกับคำแนะนำที่ผู้ใช้เห็นใน FragmentStatePagerAdapter
    • เพิ่มเมื่อ PageTransformer เชื่อมต่อกับ ViewPager เพื่อให้แอปพลิเคชัน จะมีลักษณะการทำงานที่กำหนดเองสำหรับการเลื่อน
    • เพิ่มฟีเจอร์ใหม่และการแก้ไขใน TaskStackBuilder แล้ว จากรุ่นปัจจุบัน
    • แก้ไข PagerTitleStrip เพื่อติดตามอย่างถูกต้อง ใช้ PagerAdapter อยู่
    • แก้ปัญหาภาพกะพริบ การวางตำแหน่ง และการตัดข้อความ PagerTitleStrip
    • แก้ไข PagerTabStrip เพื่อให้เป็นไปตามระยะห่างจากขอบอย่างเหมาะสม เมื่อวาดเส้นใต้
  • การช่วยเหลือพิเศษ
    • เพิ่มการรองรับท่าทางสัมผัสการช่วยเหลือพิเศษและประเภทเหตุการณ์การแตะแบบใหม่ใน AccessibilityEventCompat
    • เพิ่มการสนับสนุนสำหรับ API การช่วยเหลือพิเศษใหม่ใน ViewCompat
    • เพิ่มการรองรับเมธอด performAccessibilityAction() ใน ViewCompat แล้ว
  • เพิ่มการรองรับท่าทางสัมผัสด้วยGestureDetectorCompat
  • เพิ่มการสนับสนุนการทำงานแบบอะตอมมิกกับไฟล์โดยใช้ AtomicFile ชั้นเรียน
  • เพิ่มการรองรับเมธอด make ทั้งชุดใน IntentCompat
  • เพิ่ม trimToSize() วิธีใน คลาสยูทิลิตี LruCache
  • อัปเดต ConnectivityManagerCompat เพื่อรับข้อมูลเครือข่ายแล้ว จาก CONNECTIVITY_ACTION ออกอากาศ

การแก้ไข 10

สิงหาคม 2012

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • เพิ่มการรองรับฟีเจอร์การแจ้งเตือนที่เปิดตัวใน Android 4.1 (API ระดับ 16) ด้วย การเพิ่มใน NotificationCompat

การแก้ไข 9

มิถุนายน 2012

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • การสนับสนุนอินเทอร์เฟซผู้ใช้
    • เพิ่มการสนับสนุน PagerTabStrip ซึ่งจะปรับปรุงประสิทธิภาพ ฟังก์ชันอื่นๆ นอกเหนือจาก PagerTitleStrip
    • แก้ไขข้อบกพร่องต่างๆ สำหรับ PagerTitleStrip และ PagerTabStrip รวมถึงตัวเลือก setAllCaps รายการ การจัดข้อความชื่อ การปรับปรุงลักษณะ การจำกัดความกว้างขั้นต่ำ และปัญหาการนำทางด้วยการสัมผัส
    • เพิ่มการรองรับรางน้ำ ViewPager หน้า ช่วยให้คลาส ViewPager สนับสนุนการแบ่งหน้าสำหรับเนื้อหาที่มี ช่วงการเลื่อนในแนวนอนขนาดใหญ่ เช่น แผนที่
    • แก้ไขข้อบกพร่องหลายรายการสำหรับ ViewPager รวมถึงขนาด และปัญหาการเปลี่ยนแปลงชุดข้อมูล การกำหนดตำแหน่งหน้าเว็บ การโต้ตอบของผู้ใช้ การติดตามการเลื่อนและแป้นพิมพ์ ปัญหาการนำทาง
    • แก้ไขข้อบกพร่องหลายรายการสำหรับ Fragment ซึ่งรวมถึง การจัดการonActivityResult()เมื่อ ไม่มีส่วนย่อยเป้าหมายแล้ว ส่งเหตุการณ์การเลือกไปยังส่วนย่อยที่มองไม่เห็น ปรับปรุงแล้ว ลักษณะการทำงานของ FragmentTransaction.replace() และเพิ่มการจัดการสถานะที่ดีขึ้นสำหรับชิ้นส่วนที่ย้ายออกจากมุมมอง
    • เพิ่มการรองรับเมธอด postOnAnimation() ใน ViewCompat
    • อัปเดต NavUtils เพื่อใช้ Android 4.1 (API ระดับ 16) ฟังก์ชันการไปยังส่วนต่างๆ ขึ้น (หากมี)
  • การช่วยเหลือพิเศษ
    • อัปเดตชั้นเรียนการสนับสนุนการช่วยเหลือพิเศษ ซึ่งรวมถึง AccessibilityNodeInfoCompat เพื่อติดตามการแก้ไขที่ทำใน Android 4.1 (API ระดับ 16)
    • เพิ่มการรองรับการเลื่อนสำหรับการช่วยเหลือพิเศษใน ViewPager
  • การปรับปรุงทั่วไป

การแก้ไข 8

เมษายน 2012

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • สร้างแฟล็ก Intent คงที่สำหรับออบเจ็กต์ PendingIntent รายการแล้ว โดย TaskStackBuilder
  • นำแอตทริบิวต์ที่ไม่ได้ใช้ออกจากโปรเจ็กต์ไลบรารี gridlayout เพื่อให้มั่นใจว่า ไลบรารีนี้สร้างได้ด้วย API ระดับ 7 ขึ้นไป
  • เพิ่ม .classpath และ .project ไฟล์สำหรับตารางกริดแล้ว โครงการห้องสมุด

การแก้ไข 7

มีนาคม 2012

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • เพิ่ม ShareCompat ซึ่งมีคลาสตัวช่วย สำหรับการส่งและรับเนื้อหาสำหรับแอปพลิเคชันการแชร์ผ่านโซเชียล รวมถึงข้อมูลเมตาใหม่สำหรับ ระบุแหล่งที่มาของข้อมูลที่แชร์ไปยังแอปต้นทาง ชั้นเรียนนี้ยังมีการผสานรวมกับ ShareActionProvider ใหม่ใน Android 4.0
  • เพิ่ม NavUtils และ TaskStackBuilder เพื่อสนับสนุนการติดตั้งใช้งาน หลักเกณฑ์การออกแบบของ Android สำหรับการนำทาง เหล่านี้ ที่เพิ่มเข้ามา ได้แก่ วิธีใช้ปุ่มขึ้นของแถบการทำงานในเวอร์ชันต่างๆ สำหรับตัวอย่างการใช้งานรูปแบบนี้ ดูตัวอย่าง Appnavigation ใน (<em><sdk></em>/samples/<em><platform></em>/AppNavigation)
  • เพิ่ม NotificationCompat.Builder เพื่อระบุ การใช้งานความเข้ากันได้ของคลาสตัวช่วยของ Android Notification.Builder ของ Android 3.0 สำหรับการสร้างการแจ้งเตือนของระบบตามมาตรฐาน

การแก้ไข 6

ธันวาคม 2011

หมายเหตุ: ตอนนี้คุณสามารถใช้ข้อมูลอ้างอิงสำหรับ API ของไลบรารีการสนับสนุนกับ เฟรมเวิร์กที่อ้างถึง เช่น android.support.v4.app

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • การเปลี่ยนแปลงใน ViewPager:
    • เพิ่มการสนับสนุนมุมมองการตกแต่งเพิ่มเติมสำหรับ ViewPager คุณอาจจัดเตรียมมุมมองตกแต่งเป็นมุมมองย่อยของเพจเจอร์ในเลย์เอาต์ XML ได้
    • เพิ่ม PagerAdapter.getPageTitle() ลงในสตริงชื่อของหน้าเว็บแล้ว ซึ่งมีค่าเริ่มต้นเป็น no สำหรับแต่ละหน้า
    • เพิ่ม PagerTitleStrip ซึ่งเป็นชื่อแบบไม่โต้ตอบแล้ว Strip เพื่อเพิ่มเป็นช่องย่อยของ ViewPager ได้ นักพัฒนาซอฟต์แวร์สามารถให้ข้อความ ลักษณะและสี ตลอดจนข้อมูลการกำหนดขนาดและแรงโน้มถ่วงของเค้าโครง
    • อัปเดต PagerAdapter วิธีในการใช้ ViewGroup แล้ว ออบเจ็กต์ แทนที่จะเป็น View เพื่อหลีกเลี่ยงการแคสต์คลาสในการใช้งานอะแดปเตอร์
    • อัปเดต ViewPager เพื่อใช้รูปแบบ Launcher พฤติกรรมการสะบัด
    • แก้ไขข้อบกพร่องด้านการโต้ตอบกับอินเทอร์เฟซผู้ใช้และการทดสอบการทำงานอัตโนมัติ
  • การรองรับส่วนย่อย:
    • เปลี่ยน setStartDeferred() เมธอดเป็น setUserVisibleHint(boolean) แล้ว
    • เพิ่มการเลื่อนการเริ่มต้นสำหรับหน้านอกหน้าจอเพื่อปรับปรุงประสิทธิภาพ
  • การสนับสนุนสำหรับ Accessibility API:
    • อัปเดต AccessibilityDelegateCompat วิธีแล้ว เพื่อแสดงผลรายการที่ว่างเปล่าแทนค่าว่าง
    • เพิ่ม API ใหม่ที่ตัวอย่างเวอร์ชัน 4 จำเป็นต้องใช้

การแก้ไข 5

ธันวาคม 2011

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • การสนับสนุนสำหรับ Accessibility API:
  • การเปลี่ยนแปลงใน ViewPager:
    • เพิ่มการรองรับระยะขอบระหว่างหน้า คุณระบุ Drawable หรือไม่ก็ได้ ให้เต็มขอบ
    • เพิ่มการรองรับ EdgeEffect
    • เพิ่มการสนับสนุนสำหรับการไปยังส่วนต่างๆ ด้วยแป้นพิมพ์
    • เพิ่มการรองรับเพื่อควบคุมจำนวนหน้าที่จะเก็บไว้แต่ละด้าน ของหน้าปัจจุบัน
    • ฟิสิกส์การแตะที่ปรับปรุงใหม่
    • แก้ไขข้อบกพร่องด้านลักษณะการทำงานของอินเทอร์เฟซผู้ใช้

การแก้ไข 4

ตุลาคม 2011

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • เพิ่ม EdgeEffectCompat ไปที่ สนับสนุน EdgeEffect
  • เพิ่ม LocalBroadcastManager เพื่อให้แอปพลิเคชัน ลงทะเบียนและรับ Intent ภายในแอปพลิเคชันเดียวโดยไม่ต้อง ออกอากาศทั่วโลก
  • เพิ่มการรองรับใน ViewCompat เพื่อตรวจหาและตั้งค่าการเลื่อนเกิน โหมดสำหรับ View ใน Android 2.3 ขึ้นไป
  • การเปลี่ยนแปลงใน Fragment API
    • เพิ่ม API ใหม่เพื่อควบคุมการแสดงเมนูใหม่
    • เพิ่ม API สำหรับภาพเคลื่อนไหวที่กำหนดเองแล้ว
    • เพิ่ม API ใน FragmentActivity เพื่อรักษาแบบกำหนดเอง และข้อมูลอินสแตนซ์ที่ไม่ได้กำหนดค่า
    • การแก้ไขข้อบกพร่องหลายรายการ
  • แก้ไขข้อบกพร่องของ Loader ที่ทำให้เกิดปัญหาใน การยกเลิก AsyncTask เมื่อเรียกใช้บน Froyo และเก่ากว่า เวอร์ชันต่างๆ ของแพลตฟอร์ม การสนับสนุน ตอนนี้โค้ดจะใช้ AsyncTask เวอร์ชันของตัวเองเพื่อให้ยังคงเดิม พฤติกรรมบนแพลตฟอร์มทุกเวอร์ชัน

การแก้ไข 3

กรกฎาคม 2011

การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
  • เพิ่มการสนับสนุนสำหรับ Fragment.SavedState
  • เพิ่ม MotionEventCompat เพื่อรองรับ MotionEvent API ที่ใหม่กว่า
  • เพิ่ม VelocityTrackerCompat เพื่อรองรับ VelocityTracker API ที่ใหม่กว่า
  • เพิ่ม ViewConfigurationCompat เพื่อรองรับ ViewConfiguration API ที่ใหม่กว่า
  • API ใหม่ทั้งหมด (ใช้ได้เฉพาะในไลบรารีการสนับสนุน) ที่จะช่วยให้คุณสร้าง UI ได้ ด้วยการแบ่งหน้าแนวนอน ทำให้ผู้ใช้สามารถปัดซ้ายและขวาระหว่างการดูเนื้อหาได้ ชั้นเรียนถึง ซึ่งรวมถึง
    • ViewPager: ViewGroup ที่จัดการ สำหรับมุมมองย่อย ซึ่งผู้ใช้สามารถปัดดูได้
    • PagerAdapter: อะแดปเตอร์ที่เติมค่า ViewPager ด้วยองค์ประกอบ มุมมองที่เป็นตัวแทนแต่ละหน้าได้
    • FragmentPagerAdapter: ส่วนขยายของ PagerAdapter สำหรับการพลิก ระหว่างส่วนย่อย
    • FragmentStatePagerAdapter: ส่วนขยายของ PagerAdapter สำหรับ การพลิกระหว่างส่วนย่อยที่ใช้การรองรับ Fragment.SavedState ของไลบรารี
ไลบรารีการสนับสนุน v13 ใหม่:
  • รวมFragmentPagerAdapterและFragmentStatePagerAdapter เพื่อรองรับการแบ่งหน้าแนวนอน

    ซึ่งเหมือนกับ API ที่เพิ่มลงในไลบรารีการสนับสนุน v4 แต่ต้องมี คอมโพเนนต์แพลตฟอร์มอื่นๆ ใน Android 3.2 ใช้ไลบรารีนี้แทน v4 หากคุณกำลังพัฒนาเพื่อ Android 3.2 ขึ้นไป (API อื่นๆ ทั้งหมดในไลบรารี v4 มีให้ใช้งานกับระดับ API แล้ว 13)

การแก้ไข 2

พฤษภาคม 2011

การเปลี่ยนแปลงสำหรับไลบรารี v4 มีดังนี้
  • รองรับภาพเคลื่อนไหวส่วนย่อย
  • แก้ไข Fragment.onActivityResult() แมลง

การแก้ไข 1

มีนาคม 2011

รุ่นแรกที่ใช้ไลบรารี v4