ViewPager2
最近更新時間 | 穩定版 | 發布候選版 | 測試版 | Alpha版 |
---|---|---|---|---|
2021年8月4日 | 1.0.0 | - | 1.1.0-beta01 | - |
AndroidX依附元件
如要使用ViewPager2
,請將下列AndroidX依附元件加入專案的build.gradle
檔案:
Groovy
dependencies { implementation "androidx.viewpager2:viewpager2:1.0.0" }
Kotlin
dependencies { implementation("androidx.viewpager2:viewpager2:1.0.0") }
意見回饋
你的意見可協助我們改善Jetpack。如果發現新的問題或對改善此程式庫有獨到見解,歡迎與我們聯絡。請先查看這個程式庫的現有問題,再建立新問題。只要點選星號按鈕,即可投票給現有的問題。
詳情請參閱Issue Tracker說明文件。
1.1.0版本
1.1.0-beta01版本
2021年8月4日
androidx.viewpager2:viewpager2:1.1.0-beta01
已釋出。1.1.0-beta01版包含這些修訂版本。
API變更
升級Android版本即可使用Kotlin 1.4(Id6471、b/165307851、b/165300826)
繼續對所有Android程式庫指定Java 8(2923f39)
修正錯誤
- 已修正分派的視窗插網,所有頁面現在都會接收相同的插入點。(I47fef)
1.1.0-alpha01版本
2020年4月1日
androidx.viewpager2:viewpager2:1.1.0-alpha01
已釋出。1.1.0-alpha01版本包含這些修訂版本。
這個版本會填入RecyclerView 1.2.0-alpha02的變更,而RecyclerView
會預設為不再提供CollectionInfo
和CollectionItemInfo
。更新至RecyclerView 1.2.0-alpha02
時,也會一併更新ViewPager2
,以避免無障礙設計迴歸問題。
新功能
- 新增
FragmentTransactionCallback
介面,以監聽FragmentStateAdapter
中發生的片段生命週期變更。(Ibda77)
修正錯誤
- 修正在
FragmentManager
中新增片段時,初始片段選單顯示設定的FragmentStateAdapter
問題。(I9d2ff、b/144442240)
1.0.0版本
1.0.0版本
2019年11月20日
「androidx.viewpager2:viewpager2:1.0.0
」已發布,但1.0.0-rc01沒有任何變更。1.0.0版含有這些修訂版本。
1.0.0的主要功能
- 先前的ViewPager導入項目改善項目:
- 支援RTL(由右至左)版面配置
- 支援垂直方向
- 值得信賴的
Fragment
支援(包括處理基礎Fragment
集合的變更) - 資料集變更動畫(包含
DiffUtil
支援)
- 輕鬆從先前的
ViewPager
實作遷移(盡可能使用API對等點)。請參閱遷移指南和範例應用程式。
請參閱指南,瞭解如何使用ViewPager2在片段之間移動。
1.0.0-rc01版本
2019年10月23日
androidx.viewpager2:viewpager2:1.0.0-rc01
自1.0.0-beta05
起沒有變更。1.0.0-rc01版包含這些修訂版本。
1.0.0-beta05版本
2019年10月9日
androidx.viewpager2:viewpager2:1.0.0-beta05
已釋出。1.0.0-beta05版本包含這些修訂版本。
修正錯誤
- 修正造成畫面外設定的
requestFocus
問題。此行為現在與原始ViewPager一致。(b/140656866) - 修正頁面更改後留在畫面外頁面上的
focus
。當您變更頁面時,焦點現已清除。(b/140656866) - 修正在變更網頁時暫停/繼續交易
Fragment
的方式(從現在起,我們會先暫停舊有的主要項目,再恢復新的項目)。(b/139489059) - 修正
canScrollHorizontally(int)
和canScrollVertically(int)
-現在可以傳回ViewPager2是否能按照指定方向捲動。(b/141848404) - SWipeRefreshLayout中的問題已修正,可搭配ViewPager2使用。
1.0.0-beta04版本
2019年9月5日
androidx.viewpager2:viewpager2:1.0.0-beta04
已釋出。這個版本包含的修訂版本,請按這裡。
修正錯誤
- 修正
Fragment
反向堆疊的FragmentStateAdapter
邊緣案例問題。(b/139095195) - 修正包含特定屬性設定的
EditText
,導致捲動/頁面跳轉/聚焦。(b/138044582,b/139432498) - 修正
ItemDecoration
執行個體的問題,以及過度捲動指標位置的解決方法。(b/139012032) - 修正了其他元件中的許多問題,可與
ViewPager2
搭配使用,例如:RecyclerView、NestedScrollView和導覽。
1.0.0-beta03版本
2019年8月7日
androidx.viewpager2:viewpager2:1.0.0-beta03
已釋出。這個版本包含的修訂版本,請按這裡。
修正錯誤
- 修正暫時
Fragment
狀態的FragmentStateAdapter
問題。b/134246546 - 修正為
currentItem
和scrollState
資料集在順暢捲動期間變更時會發生問題(已解決的案例)。b/137642608 - 修正
PageTransformer
(包括MarginPageTransformer
)動畫與資料集變更動畫相衝突的問題。b/134658996 - 修正大型資料集中的流暢捲動動畫(限制為
float
整數值)。b/134858960
1.0.0-beta02版本
2019年7月19日
androidx.viewpager2:viewpager2:1.0.0-beta02
已釋出。這個版本包含的修訂版本,請按這裡。
修正錯誤
- 移除
1.0.0-beta01
中意外引入的Jacoco依附元件。(b/137782951)
1.0.0-beta01版本
2019年7月17日
androidx.viewpager2:viewpager2:1.0.0-beta01
已釋出。這個版本包含的修訂版本,請按這裡。
修正錯誤
- 修正捲動及更新資料集時的
ViewPager2.updateCurrentItem
當機問題 - 修正與「
ViewPager2.isLayoutRtl
」相關的NullPointerException
項當機問題 TOUCH_SLOP_PAGING
現在是預設的觸控滑桿OnPageChangeCallback
修正空轉接器相關問題(頁面0
而非-1
以與ViewPager1
進行奇偶校驗)
已知問題
- 我們仍持續針對尚未解決的問題著手解決相關問題,然後再改用穩定版
1.0.0-alpha06版本
2019年7月2日
androidx.viewpager2:viewpager2:1.0.0-alpha06
已釋出。這個版本包含的修訂版本,請按這裡。
這是我們在凍結API並轉為Beta版之前計劃的最後一個Alpha版 - 請向我們提供API意見回饋。
新功能
- 更完善的無障礙設計:
ACTION_PAGE_RIGHT
、ACTION_PAGE_DOWN
等
API變更
FragmentStateAdapter
:非主要項目Fragment
的上限為STARTED
,而menuVisibility
已設為否。PageTransformer
、MarginPageTransformer
、CompositePageTransformer
:position
已修正說明文件。
修正錯誤
- 修正資料集變更/轉接程式變更後的「
currentItem
」。 MarginPageTransformer
與offscreenPageLimit
問題已修復。- 已修正
FakeDrag
行為中的無障礙工具動作。
1.0.0-alpha05版本
2019年6月5日
androidx.viewpager2:viewpager2:1.0.0-alpha05
已釋出。這個版本包含的修訂版本,請按這裡。
新功能
ItemDecorator
導入與RecyclerView
一致的行為。- 導入
MarginPageTransformer
,藉此在頁面之間插入空格(插入網頁之外)。 CompositePageTransformer
提供結合多個PageTransformer
的功能。
API變更
FragmentStateAdapter#getItem
方法已重新命名為FragmentStateAdapter#createFragment
- 先前的方法名稱經證實是過去發生的錯誤來源。OFFSCREEN_PAGE_LIMIT_DEFAULT
的值已從0
變更為-1
。如果使用OFFSCREEN_PAGE_LIMIT_DEFAULT
常數,則不需要變更用戶端程式碼。
修正錯誤
- 「
SCROLL_STATE_SETTLING
」被相反方向的拖動打斷時,「getCurrentItem()
」行為得到了修正。 - 「不保留活動」情境中的
FragmentStateAdapter
類別載入器問題已修正。 - 已改善
setOffscreenPageLimit
說明文件。
1.0.0-alpha04版本
2019年5月7日
androidx.viewpager2:viewpager2:1.0.0-alpha04
已釋出。這個版本包含的修訂版本,請按這裡。
新功能
offscreenPageLimit
:用於嚴格控管資料檢視階層中的View
/Fragment
頁數
API變更
orientation
和isUserScrollable
屬性不再是SavedState
的一部分saveState
和restoreState
方法最後在FragmentStateAdapter
完成ViewPager2.Orientation
和ViewPager2.ScrollState
註解已設為不公開
修正錯誤
SavedState
:修正Activity
在刪除/重新建立資料後還原的問題SavedState
:延遲設定,直到轉換器設定完成OnPageChangeCallback
:修正小邊緣案例
1.0.0-alpha03版本
2019年4月3日
androidx.viewpager2:viewpager2:1.0.0-alpha03
已釋出。這個版本包含的修訂版本,請按這裡。
新功能
- 能夠以程式捲動ViewPager2
fakeDragBy(offsetPx)
。
API變更
FragmentStateAdapter
現在需要Lifecycle
物件。已新增兩個公用程式建構函式,可從主機FragmentActivity
或Fragment
主機取得該建構函式。
修正錯誤
- 許多
Fragment
支援修正問題:- 在最小化或螢幕旋轉期間處理資料集更新;
- 輪播後移除不相關的片段。
- 已移除已移除項目的已儲存狀態。
PageChangeCallback
:修正包含邊界的網頁偏移值計算。
1.0.0-alpha02版本
2019年3月13日
androidx.viewpager2:viewpager2:1.0.0-alpha02
已釋出。此版本所包含的修訂版本完整清單位於這裡。
新功能
- 停用使用者輸入功能(
setUserInputEnabled
、isUserInputEnabled
)
API變更
- ViewPager2類別最終結果
修正錯誤
FragmentStateAdapter
穩定修復
1.0.0-alpha01版本
2019年2月7日
androidx.viewpager2:viewpager2 1.0.0-alpha01
已釋出。這是ViewPager2的第一個版本。
新功能
- 與其先前的
android.support.v4.view.ViewPager
(VP1)相比:- 從右到左(RTL)的版面配置支援
- 支援垂直方向
notifyDataSetChanged
完全正常運作(已解決的VP1錯誤)
API變更
FragmentStateAdapter
取代FragmentStatePagerAdapter
RecyclerView.Adapter
取代PagerAdapter
registerOnPageChangeCallback
取代addPageChangeListener
已知問題
- clipToPadding
- 沒有fakeDrag
- JavaDoc
- 與方向平行的巢狀結構捲動
- 沒有裝置使用時間限制
- 需要更完善的TabLayout整合功能
- 未指pageWidth設定 (強制 100%/100%)
- 頁面轉換器:不提供硬體/軟體圖層;無反向繪圖順序
- 在目前項目之前插入頁面時保持目前項可見
- 需要鍵盤導航
- 即將推出
FragmentStateAdapter
穩定性/效能改善