หน้านี้มีรายละเอียดเกี่ยวกับการเปิดตัวแพ็กเกจ Support Library เวอร์ชันเก่า สำหรับ การเผยแพร่ไลบรารีการสนับสนุนล่าสุด โปรดดูที่ล่าสุด รองรับการแก้ไขไลบรารี
การแก้ไข 26.0.0 เบต้า 2
(มิถุนายน 2017)
โปรดทราบว่า 26.0.0-beta2 เป็นเวอร์ชันก่อนเผยแพร่ แพลตฟอร์ม API ของแพลตฟอร์มคือ อาจเปลี่ยนแปลงได้ และไม่จำเป็นต้องมีฟีเจอร์หรือการแก้ไขข้อบกพร่อง จาก Support Library เวอร์ชันเสถียรล่าสุด
สำคัญ: ไลบรารีการสนับสนุนพร้อมใช้งานแล้ว ผ่านที่เก็บ Maven ของ Google คุณไม่จำเป็นต้องดาวน์โหลดการสนับสนุน จาก SDK Manager สำหรับข้อมูลเพิ่มเติม โปรดดู การตั้งค่าคลังการสนับสนุน
API ใหม่
- ชั้นเรียน
JobIntentService
ใหม่พร้อมช่วยเหลือ นักพัฒนาซอฟต์แวร์กำหนดเวลางานให้สอดคล้องกับ Android O ใหม่ ขีดจำกัดการดำเนินการในเบื้องหลัง
ความแตกต่างของ 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
ใหม่ที่แสดงผลการเล่น ด้วย SeekBarPlaybackTransportControlGlue
ใหม่ที่ใช้งานได้กับ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()
เพื่อดูรายละเอียด
ปัญหาที่แก้ไขแล้ว
StaggeredGridLayoutManager
ขว้างIllegalArgumentException
(ปัญหา AOSP 230295)- การดึงข้อมูลล่วงหน้าของ
RecyclerView
จัดการRecyclerView
ที่แนบอยู่แต่ไม่แสดงบนหน้าจออย่างถูกต้อง - Robolectric ไม่รู้จัก
LinearLayout
- เมื่อทำลาย
Activity
จะมีการเรียกonActivityCreated()
อย่างไม่ถูกต้อง - ตัวสร้าง
AppCompatImageView
ทำให้เกิดArrayIndexOutOfBoundsException
- UI มีประสิทธิภาพลดลงในการเปลี่ยนกิจกรรม
Call.Details
การแก้ไข 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
รายการ การปรับปรุงการดึงข้อมูลล่วงหน้า- การดึงข้อมูลล่วงหน้าของ
RecyclerView
ที่ฝังไว้ เปิดใช้การดึงเนื้อหาล่วงหน้าจากRecyclerView
ภายในRecyclerView
ที่มีการเลื่อนครั้งอื่น โดยมี API เพื่อควบคุมจำนวน การดึงข้อมูลล่วงหน้าเสร็จแล้ว - เพิ่ม API สำหรับ
LayoutManager
ที่กำหนดเองแล้ว ที่ต้องใช้เพื่อเปิดใช้การดึงข้อมูลล่วงหน้าในระหว่างการเลื่อนและการสะบัด - การปรับปรุงการดึงข้อมูลล่วงหน้าเพื่อให้สร้าง/เชื่อมโยงงานได้มากเท่า ที่เป็นไปได้ในระหว่างช่วงเวลาระหว่างเฟรม
- การดึงข้อมูลล่วงหน้าของ
ปัญหาที่แก้ไขแล้ว
- การเปิด/ปิดการแสดงรหัสผ่านไม่ผ่านการทดสอบการช่วยเหลือพิเศษ
- 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 ใน BackstackCollapsingToolbarLayout
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 ดังกล่าว
-
android.support.design.widget
-
android.support.v17.leanback.app
BackgroundManager.getDefaultDimLayer()
BackgroundManager.getDimLayer()
BackgroundManager.setDimLayer()
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[])
MediaControllerGlue.MediaControllerGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[])
PlaybackControlGlue.PlaybackControlGlue(Context,PlaybackOverlayFragment,int[],int[])
PlaybackControlGlue.getFragment()
PlaybackControlGlue.getOnItemViewClickedListener()
PlaybackControlGlue.onRowChanged()
PlaybackControlGlue.pausePlayback()
PlaybackControlGlue.skipToNext()
PlaybackControlGlue.skipToPrevious()
PlaybackControlGlue.startPlayback()
PlaybackControlSupportGlue
PlaybackOverlayFragment
PlaybackOverlaySupportFragment
-
android.support.v17.leanback.widget
-
android.support.v4.app
FragmentActivity.getSupportMediaController()
FragmentActivity.setSupportMediaController()
การแก้ไข 25.0.1
(พฤศจิกายน 2016)
ปัญหาที่แก้ไขแล้ว
- เปิด/ปิดรหัสผ่าน
TextInputLayout
จะปิดใช้โดยค่าเริ่มต้นเพื่อหลีกเลี่ยงการเขียนทับโดยไม่จำเป็น เนื้อหาที่ถอนออกได้ที่นักพัฒนาแอประบุไว้ ซึ่งคุณสามารถเปิดใช้ด้วยตนเองผ่าน แอตทริบิวต์ XMLpasswordToggleEnabled
- ขณะนี้
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
ปัญหาที่แก้ไขแล้ว
FloatingActionButton
ไม่สามารถทำได้ เชื่อมโยงกับผู้เผยแพร่โฆษณาย่อยของCoordinatorLayout
โดยอ้อม (ปัญหา AOSP 220250)- รูปภาพภายใน
CollapsingToolbarLayout
ปรับขนาดไม่ถูกต้อง ด้วยfitsSystemWindows=true
(ปัญหา AOSP 220389) CoordinatorLayout
แสดงผลIndexOutOfBoundsException
เมื่อแสดงและปิดSnackbar
(ปัญหา AOSP 220762)- แก้ไข
TextInputLayout
ไม่สำเร็จ สีข้อความแสดงข้อผิดพลาด (ปัญหา AOSP 220305) BatchedCallback.onMoved()
โทรหาBatchedCallback.onInserted()
(ปัญหา AOSP 220309)TextInputLayout
ลบล้างทางขวา แบบประกอบที่ถอนออกได้ (ปัญหา AOSP 220728)
ดูรายการการแก้ไขข้อบกพร่องทั้งหมดแบบสาธารณะได้ใน เครื่องมือติดตามปัญหา AOSP
การแก้ไข 24.2.0
สิงหาคม 2016
รุ่น 24.2.0 มีการเปลี่ยนแปลงต่อไปนี้
- การแยกไลบรารีการสนับสนุนเวอร์ชัน 4
- การอัปเดต API
- การเปลี่ยนแปลงลักษณะการทำงาน
- การเลิกใช้งาน
- แก้ไขข้อบกพร่อง
หมายเหตุ: รุ่น 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
เพิ่มการสนับสนุนสำหรับ เปิด/ปิดระดับการเข้าถึงรหัสผ่านจากข้อกำหนดของดีไซน์ Materialandroid.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 หลายคลาสเลิกใช้งานแล้วและแทนที่ด้วย
ที่แสดงความเทียบเท่ากันของเฟรมเวิร์กมากขึ้น
AccessibilityStateChangeListenerCompat
ถูกแทนที่โดยAccessibilityManagerCompat.AccessibilityStateChangeListener
ของ GoogleOnCloseListenerCompat
มี ถูกแทนที่ด้วยอินเทอร์เฟซSearchViewCompat.OnCloseListener
OnQueryTextListenerCompat
ถูกแทนที่ด้วยSearchViewCompat.OnQueryTextListener
ของ Google
CustomTabsSession.setToolbarItem()
เลิกใช้งานแล้วและแทนที่ด้วย แบบ RemoteViewsetSecondaryToolbarViews()
การแก้ไขข้อบกพร่อง
ปัญหาที่ทราบต่อไปนี้ได้รับการแก้ไขแล้วในรุ่น 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
-
- เพิ่มเมื่อ
AppCompatDelegate.setCompatVectorFromResourcesEnabled()
เมธอดเพื่อเปิดใช้การใช้เวกเตอร์ที่ถอนออกได้ในออบเจ็กต์DrawableContainer
บนอุปกรณ์อีกครั้ง ที่ใช้ Android 4.4 (API ระดับ 19) และต่ำกว่า ดู AppCompat v23.2 — อายุของเวกเตอร์สำหรับ ข้อมูลเพิ่มเติม - แก้ไขปัญหาใน API 23 กับ
AppCompatDelegate.setDefaultNightMode()
ไม่ กำลังโหลดทรัพยากรที่ถูกต้องใน API ระดับ 23 (ฉบับ 206573) - แก้ไขปัญหาที่อาจทำให้เกิด
NullPointerException
แล้ว (ฉบับ 207638)
- เพิ่มเมื่อ
- การเปลี่ยนแปลงของการสนับสนุนการออกแบบ คลัง:
-
- แก้ไขปัญหาที่
TextInputLayout
ไม่ล้างข้อผิดพลาด ปรับสมดุลสีเขียว-แดงหลังsetErrorEnabled(false)
ที่ API ระดับ 21 - 22 (ปัญหา 202829) - แก้ไขปัญหาที่
FloatingActionButton
ไม่แสดง เมื่อปิดใช้ภาพเคลื่อนไหว (ฉบับ 206416) - แก้ไขปัญหาใน
AppBarLayout
แล้ว ฟังก์ชันสแนปเมื่อใช้กับ
ค่าสถานะการเลื่อน (ฉบับ 207398)scroll
|enterAlways
|enterAlwaysCollapsed
|snap
- แก้ไขปัญหาที่
- การเปลี่ยนแปลงของไลบรารีเวกเตอร์ที่วาดได้ของ :
-
- แก้ไขข้อบกพร่องที่
VectorDrawableCompat
ดำเนินการ แสดงผลไม่ถูกต้องในTextView
ใน API ระดับ 23 (ฉบับ 206227)
- แก้ไขข้อบกพร่องที่
การแก้ไข 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 คือ
-
- ราคาคงที่
MediaRouteControllerDialog
ลักษณะการทำงานของแถบเลื่อนระดับเสียง (ฉบับ 202299)
- ราคาคงที่
- การเปลี่ยนแปลงค่ากำหนด v7 คลัง:
-
- แก้ปัญหาที่
PreferenceFragmentCompat
จะขัดข้อง หากระบุdividerHeight
แล้ว (ฉบับ 204778)
- แก้ปัญหาที่
- การเปลี่ยนแปลงสำหรับ 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)
- เปลี่ยนกลับการขึ้นต่อกันของเนื้อหาเวกเตอร์เพื่อให้นักพัฒนาซอฟต์แวร์ที่ใช้องค์ประกอบ
appcompat
ไลบรารีไม่ได้บังคับให้ใช้
- การเปลี่ยนแปลงสำหรับ v7 Cardview ไลบรารีต่อไปนี้
-
- เพิ่มการรองรับโหมดกลางคืนสำหรับ
CardView
(ฉบับ 194497)
- เพิ่มการรองรับโหมดกลางคืนสำหรับ
- การเปลี่ยนแปลงสำหรับ v7 ไลบรารี recyclerview
-
- แก้ไขข้อบกพร่องที่เกี่ยวข้องกับวิธีการวัดข้อมูลจำเพาะแบบต่างๆ (ฉบับ 201856)
- ลดระยะเวลาปิดล็อกซึ่ง
RecyclerView
ไม่อนุญาตให้ใช้อะแดปเตอร์ เปลี่ยนแปลงขณะคำนวณเลย์เอาต์หรือการเลื่อน (ฉบับ 202046) - แก้ไขข้อขัดข้องเมื่อโทรหา
notifyItemChanged()
บนรายการที่ไม่แสดงผล (ฉบับ 202136) - แก้ไขข้อขัดข้องที่เกิดขึ้นเมื่อ
RecyclerView.LayoutManager
เพิ่มและนำมุมมองออก การวัดผลเท่านั้น (ฉบับ 193958)
- การเปลี่ยนแปลงสำหรับ v7 mediaRouter Library คือ
-
- แก้ไขข้อขัดข้องที่เกิดขึ้นเมื่อเรียกใช้
MediaRouter.getInstance()
ใน API ระดับ 17 (ฉบับ 180654)
- แก้ไขข้อขัดข้องที่เกิดขึ้นเมื่อเรียกใช้
- การเปลี่ยนแปลงสำหรับ 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 } }
- ถ้าคุณกำลังสร้างด้วยปลั๊กอิน Android สำหรับ Gradle 1.5.0 หรือ
ที่ด้านล่าง ให้เพิ่มค่าต่อไปนี้ลงในไฟล์
- การเปลี่ยนแปลงสำหรับ 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”
หรือจะใช้แอตทริบิวต์ XMLdatePickerFormat
ก็ได้
- เพิ่มความสามารถใหม่ให้กับ
- การเปลี่ยนแปลงสำหรับ 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 มีดังนี้
-
- แก้ปัญหาการใช้งาน ProGuard (ปัญหา 183261)
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน 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); }
- เพิ่ม API ภาพเคลื่อนไหวที่ปรับปรุงแล้วลงในคลาส
- การเปลี่ยนแปลงสำหรับ v7 v14 และ ไลบรารีการสนับสนุนค่ากำหนด v17:
-
- นำ API ออกเพื่อควบคุมกล่องโต้ตอบ
EditText
แล้ว
- นำ API ออกเพื่อควบคุมกล่องโต้ตอบ
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน 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 มีดังนี้
-
- เพิ่ม
getContentChangeTypes()
และ วันที่setContentChangeTypes()
วิธีการและประเภทการเปลี่ยนแปลงที่เกี่ยวข้อง ฟิลด์ไปยังAccessibilityEventCompat
สำหรับการจัดการเหตุการณ์การช่วยเหลือพิเศษ - เพิ่ม
getActiveQueueItemId()
,getCustomActions()
, และgetExtras()
ที่มีฟิลด์สถานะที่เกี่ยวข้องPlaybackStateCompat
ชั้นเรียนสำหรับ กำลังรับการดำเนินการที่กำหนดเองจากคิว - เพิ่ม
addCustomAction()
,setActiveQueueItemId()
, และsetExtras()
ลงในPlaybackStateCompat.Builder
ชั้นเรียนสำหรับเพิ่ม การดำเนินการที่กำหนดเองกับสถานะการเล่น - เพิ่ม
fromCustomAction()
และgetCustomAction()
วิธี ไปยังPlaybackStateCompat.CustomAction
ชั้นเรียน สำหรับการรับการดำเนินการที่กำหนดเองจากคิว - เพิ่ม
isAttachedToWindow()
แล้วoffsetLeftAndRight()
และoffsetTopAndBottom()
ลงในคลาสViewCompat
สำหรับการทำงานกับการดู - เพิ่ม
addOnPageChangeListener()
แล้วclearOnPageChangeListeners()
และremoveOnPageChangeListener()
เมธอดของคลาสViewPager
สำหรับตอบกลับหน้าเว็บ การเปลี่ยนแปลงเลิกใช้งาน
ViewPager.setOnPageChangeListener()
วิธี - เพิ่ม
notifySubtreeAccessibilityStateChanged()
วิธีในการ คลาสViewParentCompat
สำหรับแจ้งเตือนผู้ปกครองสำหรับข้อมูลพร็อพเพอร์ตี้ สถานะการเข้าถึงของหนึ่งในองค์ประกอบสืบทอดได้มีการเปลี่ยนแปลง - เพิ่ม
translationZ()
แล้วtranslationZBy()
,z()
และzBy()
ไปยังคลาสViewPropertyAnimatorCompat
สำหรับ การเพิ่มภาพเคลื่อนไหว
- เพิ่ม
- การเปลี่ยนแปลงในไลบรารี Appcompat v7 มีดังนี้
-
- เพิ่ม
onWindowStartingSupportActionMode()
ลงในAppCompatActivity
,AppCompatCallback
และAppCompatDialog
คลาสสำหรับโหมดการดำเนินการจัดการ เริ่มจากหน้าต่างปัจจุบัน - เพิ่ม
isHandleNativeActionModesEnabled()
และ วันที่setHandleNativeActionModesEnabled()
ลงในAppCompatDelegate
คลาสสำหรับการจัดการโหมดการดำเนินการดั้งเดิม
- เพิ่ม
สำหรับรายการการเปลี่ยนแปลงทั้งหมดของไลบรารีการสนับสนุน โปรดดูที่ การสนับสนุน รายงานความแตกต่างของ 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 มิติ
- เพิ่มชั้นเรียน
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4 มีดังนี้
-
- อัปเดตเมธอด
getDrawable()
เพื่อแสดงผลออบเจ็กต์ที่ถอนออกได้สำหรับรหัสทรัพยากรที่เจาะจง ความหนาแน่นของหน้าจอ และธีม - เพิ่มเมธอด
setImportantForAccessibility()
เพื่อให้คุณระบุได้ว่าควรทริกเกอร์การดูหรือไม่ เหตุการณ์การช่วยเหลือพิเศษ - เพิ่มเมธอด
getStatusBarBackgroundDrawable()
เพื่อให้คุณได้รับพื้นหลังของแถบสถานะ ถอนออกได้ - เพิ่มเมธอดลงใน
NotificationCompat.CarExtender.UnreadConversation
เพื่อให้แอปรับส่งข้อความของ Android Auto เรียกดูข้อมูลการแจ้งเตือนเพิ่มเติมได้ - เพิ่มเมธอด
getProgressCircleDiameter()
เพื่อแสดงเส้นผ่านศูนย์กลางของเลย์เอาต์วงกลม - เปลี่ยน
DrawerLayout
เริ่มต้นแล้ว สีแถบสถานะเป็นcolorPrimaryDark
- อัปเดตเมธอด
- การเปลี่ยนแปลงในไลบรารี Appcompat v7 มีดังนี้
-
- เพิ่มรูปแบบไอคอนหมุนแล้ว
Base_Widget_AppCompat_Spinner_Underlined
- เพิ่มสไตล์วิดเจ็ตที่ปรับโทนสีด้วย
Widget_AppCompat_AutoCompleteTextView
,MultiAutoCompleteTextView
,TextAppearance_AppCompat_Button
และBase_Widget_AppCompat_RatingBar
- เพิ่มรูปแบบไอคอนหมุนแล้ว
- การเปลี่ยนแปลงสำหรับไลบรารี Leanback v17 มีดังนี้
-
- เพิ่ม
getRecycledPoolSize()
และsetRecycledPoolSize()
วิธีอนุญาตขนาดพูลที่รีไซเคิลที่กำหนดเอง - เพิ่มแอตทริบิวต์
WRAP_CONTENT
ลงใน ตั้งค่าความกว้างของเลย์เอาต์เพื่อรองรับเนื้อหาที่รวมไว้สำหรับไอคอนชื่อ - กำหนด
R.transition
ใน XML เป็น ปรับปรุงการอัปเดตการเปลี่ยนแปลง - เปิดใช้การสนับสนุนสำหรับเลย์เอาต์จากขวาไปซ้าย
- เพิ่มการรองรับเหตุการณ์สําคัญของสื่อที่เล่นและหยุดชั่วคราวใน
PlaybackOverlayFragment
ชั้นเรียน - เพิ่มการเปลี่ยนโหมดเข้าและกลับลงใน
BrowseFragment
ชั้นเรียนและ ชั้นเรียนDetailsFragment
- เพิ่มเมธอด
replace()
เพื่อแทนที่รายการในอาร์เรย์อะแดปเตอร์ของออบเจ็กต์
- เพิ่ม
- การเปลี่ยนแปลงสำหรับไลบรารี mediaRouter v7 มีดังนี้
-
- อัปเดตไอคอน Google Cast เพื่อใช้ ดีไซน์ Material
- อัปเดตไอคอนทั้งหมดที่ใช้ในกล่องโต้ตอบ
MediaRouter
เพื่อใช้ ดีไซน์ Material
- การเปลี่ยนแปลงสำหรับไลบรารี Recyclerview V7 มีดังนี้
-
- เพิ่ม
getlayoutPosition()
และgetadapterPosition()
เมธอดไปยังRecyclerView
- เลิกใช้งาน
classgetChildPosition()
และfindViewHolderForPosition()
เมธอดในRecyclerView
ชั้นเรียน - เลิกใช้งานเมธอด
getPosition()
ใน ชั้นเรียนRecyclerView.ViewHolder
- เลิกใช้งานเมธอด
getViewPosition()
ใน ชั้นเรียนRecyclerView.LayoutParams
- เพิ่ม
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4 มีดังนี้
-
- เพิ่ม
NotificationCompat.WearableExtender
หลายรายการ เพื่อปรับปรุงการแสดงบาร์โค้ดในการแจ้งเตือนบนอุปกรณ์ที่สวมใส่ได้
- เพิ่ม
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน 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
- เพิ่มเมื่อ ไลบรารีการสนับสนุน Multidex เพื่อรองรับ ไฟล์ปฏิบัติการ (Dalvik) ของ Dalvik สำหรับการสนับสนุนไฟล์ Multi-dex ก่อน Android 5.0
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4 มีดังนี้
-
- เพิ่มการรองรับ
Fragment
แล้ว การเปลี่ยนสำหรับอุปกรณ์ที่ใช้ Android 5.0 (API ระดับ 21) โปรดทราบว่าการเปลี่ยนจะไม่มีผลต่ออุปกรณ์ที่ใช้ Android 4.4 และต่ำกว่า - เพิ่ม
DocumentFile
เพื่อค่อยๆ เปลี่ยนแล้ว การเปลี่ยนจากFile
ขณะที่ทำงานกับโครงสร้างเอกสาร แต่คลาสนี้ต้องการ ต้นทุนในการดำเนินการที่มากขึ้นเมื่อเทียบกับ เพิ่ม APIDocumentsContract
รายการใน 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 ใหม่:
-
- เพิ่มการสนับสนุนในการสร้างอินเทอร์เฟซผู้ใช้สำหรับทีวี ได้แก่
BrowseFragment
,DetailsFragment
และPlaybackOverlayFragment
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้วิดเจ็ตอินเทอร์เฟซผู้ใช้เหล่านี้ ดูการสร้างทีวี แอปการเล่น
- เพิ่มการสนับสนุนในการสร้างอินเทอร์เฟซผู้ใช้สำหรับทีวี ได้แก่
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
-
- เพิ่มการรองรับการแจ้งเตือนเพิ่มเติมสำหรับ Android Wear ใน
NotificationCompat.WearableExtender
ซึ่งช่วยให้คุณ เพื่อระบุฟีเจอร์เฉพาะสำหรับอุปกรณ์ที่สวมใส่ได้ในการแจ้งเตือน - เพิ่ม
NotificationCompat.Action.WearableExtender
แล้ว ซึ่งทำให้เพิ่มการดำเนินการในการแจ้งเตือนของอุปกรณ์ที่สวมใส่ได้ - เพิ่ม
NotificationManagerCompat
แล้วซึ่งช่วยให้คุณ เพื่อออกการแจ้งเตือนที่รองรับฟีเจอร์ที่สวมใส่ได้อย่างเหมาะสม - เพิ่ม
RemoteInput
แล้ว ซึ่งอนุญาตให้ใช้อุปกรณ์พกพา ในการรับการป้อนข้อมูลด้วยเสียงจากการแจ้งเตือนที่ปรากฏในอุปกรณ์ที่สวมใส่ได้ - ปรับปรุงการจัดการการตอบสนองเมื่อแตะใน
SwipeRefreshLayout
- เพิ่มการรองรับการแจ้งเตือนเพิ่มเติมสำหรับ Android Wear ใน
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
-
- เพิ่มชั้นเรียน
SwipeRefreshLayout
แล้ว ซึ่งช่วยให้ผู้ใช้รีเฟรชเนื้อหาของมุมมองด้วยแนวตั้งได้ ท่าทางสัมผัสการปัด - แก้ปัญหาการช่วยเหลือพิเศษเกี่ยวกับลิ้นชักการนำทาง
- เพิ่มชั้นเรียน
- การเปลี่ยนแปลงสำหรับไลบรารี Appcompat v7 มีดังนี้
-
- แก้ปัญหาพื้นหลังของแถบการทำงาน
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
-
- ปรับปรุง
PrintHelper
ด้วยการเพิ่มอะซิงโครนัส การจัดการการพิมพ์ - แก้ไขการประมาณค่าคลาส
DrawerLayout
ของaddChildrenForAccessibility()
- แก้ไขการมิเรอร์สไลด์ที่ถอนออกได้ใน
ActionBarDrawerToggle
- แก้ไขปัญหาทีละรายการเมื่อนำรายการออกจากตัวทำซ้ำคอลเล็กชัน
- ปรับปรุง
- การเปลี่ยนแปลงสำหรับไลบรารี MediaRouter v7 มีดังนี้
-
- ปรับปรุงการระบุเส้นทางโดยใช้ชื่อเต็มของคอมโพเนนต์ใน
MediaRouteProvider.ProviderMetadata
- อัปเดต
MediaRouteChooserDialog
เพื่อซ่อนที่ปิดใช้แล้ว เส้นทาง
- ปรับปรุงการระบุเส้นทางโดยใช้ชื่อเต็มของคอมโพเนนต์ใน
- การเปลี่ยนแปลงสำหรับไลบรารีโหมดแสดงภาพ V8
-
- เพิ่มการเผยแพร่ข้อผิดพลาดสำหรับเลเยอร์thunking ของ RenderScript
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน 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
ในการใช้แล้ว สัมผัสกิจกรรมหรืออนุญาตให้ส่งผ่านไปยังมุมมองอื่น
- เพิ่มการรองรับสำหรับ Storage API ภายนอกที่มี
- การเปลี่ยนแปลงสำหรับไลบรารี MediaRouter v7 มีดังนี้
-
- เพิ่มการสนับสนุนสำหรับการจัดคิวการเล่นสื่อ การตั้งค่าส่วนหัว HTTP และสื่อ ระยะเวลาการเล่น
- เพิ่มการดำเนินการอย่างชัดเจนในการเริ่มต้น รับ และสิ้นสุดเซสชันสำหรับการจัดการสื่ออย่างชัดเจน เซสชันการเล่นด้วยเราเตอร์สื่อ
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน 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 ใหม่:
-
- เพิ่ม
ActionBar
เพื่ออนุญาตให้ใช้งาน การออกแบบอินเทอร์เฟซผู้ใช้ของแถบการทำงาน รูปแบบกลับไปใช้ Android 2.1 (API ระดับ 7) ขึ้นไป การใช้ชั้นเรียนนี้ต้องใช้ ที่คุณใช้กิจกรรมโดยการขยายฟิลด์ActionBarActivity
ชั้นเรียน
- เพิ่ม
- ไลบรารี MediaRouter v7 ใหม่:
-
เพิ่มไลบรารี MediaRouter ใหม่ซึ่งรองรับการแสดงตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์ Google Cast API ไลบรารี MediaRouter v7 เป็นวิธีควบคุมการกำหนดเส้นทางของ ช่องทางสื่อและสตรีมจากอุปกรณ์ปัจจุบันไปยังหน้าจอภายนอก ลำโพงและอุปกรณ์ปลายทางอื่นๆ ที่เข้ากันได้ตั้งแต่ Android 2.1 (API ระดับ 7) โปรดดู V7 MediaRouter Library สำหรับข้อมูลเพิ่มเติม
API ไลบรารี MediaRouter v7 ที่เปิดตัวในการสนับสนุน ห้องสมุด r18 อาจมีการเปลี่ยนแปลงสำหรับการสนับสนุนฉบับแก้ไขภายหลัง คลัง ในขณะนี้ เราขอแนะนำให้คุณใช้ไลบรารีเฉพาะเมื่อเชื่อมต่อ ที่มีฟังก์ชัน Google Cast เวอร์ชันตัวอย่างสำหรับนักพัฒนาซอฟต์แวร์
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน 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
- เพิ่ม
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
-
- ปรับปรุงพฤติกรรมการโต้ตอบของ
ViewPager
- แก้ไขข้อบกพร่องที่อาจทำให้
ViewPager
เลือก ผิดหน้า - การใช้เมธอด
removeView()
แบบคงที่ ระหว่างการออกแบบสำหรับViewPager
- แก้ไขปัญหาเกี่ยวกับ
SearchViewCompat
ซึ่งการใช้ ปุ่มย้อนกลับเพื่อปิดไม่ล้างข้อความค้นหา การแก้ไขนี้ใช้กับ API ของโฮสต์ระดับ 14 ขึ้นไป
- ปรับปรุงพฤติกรรมการโต้ตอบของ
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน 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
ออกอากาศ
- อินเทอร์เฟซผู้ใช้
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
-
- เพิ่มการรองรับฟีเจอร์การแจ้งเตือนที่เปิดตัวใน Android 4.1 (API ระดับ 16) ด้วย
การเพิ่มใน
NotificationCompat
- เพิ่มการรองรับฟีเจอร์การแจ้งเตือนที่เปิดตัวใน Android 4.1 (API ระดับ 16) ด้วย
การเพิ่มใน
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน 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
- อัปเดตชั้นเรียนการสนับสนุนการช่วยเหลือพิเศษ ซึ่งรวมถึง
- การปรับปรุงทั่วไป
- อัปเดต
TaskStackBuilder
ให้สอดคล้องกับการเปลี่ยนแปลง API ใน Android 4.1 (API ระดับ 16) TaskStackBuilder
ที่ได้รับการปรับปรุงเพื่อให้ใช้งานได้ จากบริการ- เพิ่มการรองรับ
EXTRA_HTML_TEXT
แล้ว ไปยังShareCompat
- อัปเดต
NotificationCompat.Builder
เพื่อรองรับsetNumber()
วิธี - เพิ่มการรองรับใน
ConnectivityManagerCompat
สำหรับisActiveNetworkMetered()
วิธี
- อัปเดต
- การสนับสนุนอินเทอร์เฟซผู้ใช้
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
-
- สร้างแฟล็ก Intent คงที่สำหรับออบเจ็กต์
PendingIntent
รายการแล้ว โดยTaskStackBuilder
- นำแอตทริบิวต์ที่ไม่ได้ใช้ออกจากโปรเจ็กต์ไลบรารี gridlayout เพื่อให้มั่นใจว่า ไลบรารีนี้สร้างได้ด้วย API ระดับ 7 ขึ้นไป
- เพิ่ม
.classpath
และ.project
ไฟล์สำหรับตารางกริดแล้ว โครงการห้องสมุด
- สร้างแฟล็ก Intent คงที่สำหรับออบเจ็กต์
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
-
- เพิ่ม
ShareCompat
ซึ่งมีคลาสตัวช่วย สำหรับการส่งและรับเนื้อหาสำหรับแอปพลิเคชันการแชร์ผ่านโซเชียล รวมถึงข้อมูลเมตาใหม่สำหรับ ระบุแหล่งที่มาของข้อมูลที่แชร์ไปยังแอปต้นทาง ชั้นเรียนนี้ยังมีการผสานรวมกับShareActionProvider
ใหม่ใน Android 4.0 - เพิ่ม
NavUtils
และTaskStackBuilder
เพื่อสนับสนุนการติดตั้งใช้งาน หลักเกณฑ์การออกแบบของ Android สำหรับการนำทาง เหล่านี้ ที่เพิ่มเข้ามา ได้แก่ วิธีใช้ปุ่มขึ้นของแถบการทำงานในเวอร์ชันต่างๆ สำหรับตัวอย่างการใช้งานรูปแบบนี้ ดูตัวอย่าง Appnavigation ใน (<em><sdk></em>/samples/<em><platform></em>/AppNavigation
) - เพิ่ม
NotificationCompat.Builder
เพื่อระบุ การใช้งานความเข้ากันได้ของคลาสตัวช่วยของ AndroidNotification.Builder
ของ Android 3.0 สำหรับการสร้างการแจ้งเตือนของระบบตามมาตรฐาน
- เพิ่ม
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
-
- การเปลี่ยนแปลงใน ViewPager:
- เพิ่มการสนับสนุนมุมมองการตกแต่งเพิ่มเติมสำหรับ
ViewPager
คุณอาจจัดเตรียมมุมมองตกแต่งเป็นมุมมองย่อยของเพจเจอร์ในเลย์เอาต์ XML ได้ - เพิ่ม
PagerAdapter.getPageTitle()
ลงในสตริงชื่อของหน้าเว็บแล้ว ซึ่งมีค่าเริ่มต้นเป็น no สำหรับแต่ละหน้า - เพิ่ม
PagerTitleStrip
ซึ่งเป็นชื่อแบบไม่โต้ตอบแล้ว Strip เพื่อเพิ่มเป็นช่องย่อยของ ViewPager ได้ นักพัฒนาซอฟต์แวร์สามารถให้ข้อความ ลักษณะและสี ตลอดจนข้อมูลการกำหนดขนาดและแรงโน้มถ่วงของเค้าโครง - อัปเดต
PagerAdapter
วิธีในการใช้ ViewGroup แล้ว ออบเจ็กต์ แทนที่จะเป็น View เพื่อหลีกเลี่ยงการแคสต์คลาสในการใช้งานอะแดปเตอร์ - อัปเดต
ViewPager
เพื่อใช้รูปแบบ Launcher พฤติกรรมการสะบัด - แก้ไขข้อบกพร่องด้านการโต้ตอบกับอินเทอร์เฟซผู้ใช้และการทดสอบการทำงานอัตโนมัติ
- เพิ่มการสนับสนุนมุมมองการตกแต่งเพิ่มเติมสำหรับ
- การรองรับส่วนย่อย:
- เปลี่ยน
setStartDeferred()
เมธอดเป็นsetUserVisibleHint(boolean)
แล้ว - เพิ่มการเลื่อนการเริ่มต้นสำหรับหน้านอกหน้าจอเพื่อปรับปรุงประสิทธิภาพ
- เปลี่ยน
- การสนับสนุนสำหรับ Accessibility API:
- อัปเดต
AccessibilityDelegateCompat
วิธีแล้ว เพื่อแสดงผลรายการที่ว่างเปล่าแทนค่าว่าง - เพิ่ม API ใหม่ที่ตัวอย่างเวอร์ชัน 4 จำเป็นต้องใช้
- อัปเดต
- การเปลี่ยนแปลงใน ViewPager:
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
-
- การสนับสนุนสำหรับ Accessibility API:
- เพิ่มเมื่อ
AccessibilityDelegateCompat
เพื่อรองรับView.AccessibilityDelegate
- เพิ่มเมื่อ
AccessibilityEventCompat
เพื่อรองรับAccessibilityEvent
- เพิ่มเมื่อ
AccessibilityManagerCompat
เพื่อรองรับAccessibilityManager
- เพิ่มเมื่อ
AccessibilityNodeInfoCompat
เพื่อรองรับAccessibilityNodeInfo
- เพิ่มเมื่อ
AccessibilityRecordCompat
เพื่อรองรับAccessibilityRecord
- เพิ่มเมื่อ
AccessibilityServiceInfoCompat
เพื่อรองรับAccessibilityServiceInfo
- เพิ่มเมื่อ
ViewGroupCompat
เพื่อรองรับฟีเจอร์การช่วยเหลือพิเศษในViewGroup
- แก้ไขเมื่อ
ViewCompat
เพื่อรองรับฟีเจอร์การช่วยเหลือพิเศษในView
- เพิ่มเมื่อ
- การเปลี่ยนแปลงใน ViewPager:
- เพิ่มการรองรับระยะขอบระหว่างหน้า
คุณระบุ
Drawable
หรือไม่ก็ได้ ให้เต็มขอบ - เพิ่มการรองรับ
EdgeEffect
- เพิ่มการสนับสนุนสำหรับการไปยังส่วนต่างๆ ด้วยแป้นพิมพ์
- เพิ่มการรองรับเพื่อควบคุมจำนวนหน้าที่จะเก็บไว้แต่ละด้าน ของหน้าปัจจุบัน
- ฟิสิกส์การแตะที่ปรับปรุงใหม่
- แก้ไขข้อบกพร่องด้านลักษณะการทำงานของอินเทอร์เฟซผู้ใช้
- เพิ่มการรองรับระยะขอบระหว่างหน้า
คุณระบุ
- การสนับสนุนสำหรับ Accessibility API:
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน v4:
-
- เพิ่ม
EdgeEffectCompat
ไปที่ สนับสนุนEdgeEffect
- เพิ่ม
LocalBroadcastManager
เพื่อให้แอปพลิเคชัน ลงทะเบียนและรับ Intent ภายในแอปพลิเคชันเดียวโดยไม่ต้อง ออกอากาศทั่วโลก - เพิ่มการรองรับใน
ViewCompat
เพื่อตรวจหาและตั้งค่าการเลื่อนเกิน โหมดสำหรับView
ใน Android 2.3 ขึ้นไป - การเปลี่ยนแปลงใน Fragment API
- เพิ่ม API ใหม่เพื่อควบคุมการแสดงเมนูใหม่
- เพิ่ม API สำหรับภาพเคลื่อนไหวที่กำหนดเองแล้ว
- เพิ่ม API ใน
FragmentActivity
เพื่อรักษาแบบกำหนดเอง และข้อมูลอินสแตนซ์ที่ไม่ได้กำหนดค่า - การแก้ไขข้อบกพร่องหลายรายการ
- แก้ไขข้อบกพร่องของ
Loader
ที่ทำให้เกิดปัญหาใน การยกเลิกAsyncTask
เมื่อเรียกใช้บน Froyo และเก่ากว่า เวอร์ชันต่างๆ ของแพลตฟอร์ม การสนับสนุน ตอนนี้โค้ดจะใช้AsyncTask
เวอร์ชันของตัวเองเพื่อให้ยังคงเดิม พฤติกรรมบนแพลตฟอร์มทุกเวอร์ชัน
- เพิ่ม
- การเปลี่ยนแปลงสำหรับไลบรารีการสนับสนุน 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)
- รวม
- การเปลี่ยนแปลงสำหรับไลบรารี v4 มีดังนี้
-
- รองรับภาพเคลื่อนไหวส่วนย่อย
- แก้ไข
Fragment.onActivityResult()
แมลง
การแก้ไข 22
มีนาคม 2015
การแก้ไข 21.0.3
ธันวาคม 2014
การแก้ไข 21.0.2
พฤศจิกายน 2014
การแก้ไข 21.0.1
พฤศจิกายน 2014
การแก้ไข 21
ตุลาคม 2014
การแก้ไข 20
กรกฎาคม 2014
การแก้ไข 19.1.0
มีนาคม 2014
การแก้ไข 19.0.1
ธันวาคม 2013
การแก้ไข 19
ตุลาคม 2013
การแก้ไข 18
กรกฎาคม 2013
การแก้ไข 13
พฤษภาคม 2013
การแก้ไข 12
กุมภาพันธ์ 2013
การแก้ไข 11
พฤศจิกายน 2012
การแก้ไข 10
สิงหาคม 2012
การแก้ไข 9
มิถุนายน 2012
การแก้ไข 8
เมษายน 2012
การแก้ไข 7
มีนาคม 2012
การแก้ไข 6
ธันวาคม 2011
หมายเหตุ: ตอนนี้คุณสามารถใช้ข้อมูลอ้างอิงสำหรับ API ของไลบรารีการสนับสนุนกับ
เฟรมเวิร์กที่อ้างถึง เช่น android.support.v4.app
การแก้ไข 5
ธันวาคม 2011
การแก้ไข 4
ตุลาคม 2011
การแก้ไข 3
กรกฎาคม 2011
การแก้ไข 2
พฤษภาคม 2011
การแก้ไข 1
มีนาคม 2011
รุ่นแรกที่ใช้ไลบรารี v4