模塊介紹
Coding Style wiki
基本說明
無限列表 (魔改版),基於原生 UGUI 能夠簡單的繼承或使用現有的 Infinite ScrollView,以物件池的概念進行物件有效循環利用,僅需少量的 GameObject 即可承載大量列表數據。
Reference: howtungtung - InfiniteScrollView
- 版本:v1.7.1 (
com.michaelo.oxgkit.infinitescrollview) - 命名空間:
OxGKit.InfiniteScrollView
注意 本模組依賴 UniTask 與 OxGKit.LoggingSystem,需先自行安裝 (詳見 Installation)。
應用說明
內建 ScrollView 實作
| 組件 | 說明 |
|---|---|
VerticalInfiniteScrollView | 垂直列表 (上下滾動)。 |
HorizontalInfiniteScrollView | 水平列表 (左右滾動)。 |
VerticalGridInfiniteScrollView | 垂直網格 (橫向並排 columnCount 個 Cell)。 |
HorizontalGridInfiniteScrollView | 水平網格 (縱向並排 rowCount 個 Cell)。 |
皆繼承抽象基底類 InfiniteScrollView,將組件掛載至 UGUI 的 ScrollRect 物件上即可使用,也可自行繼承擴展客製列表行為。
物件池循環利用
- 初始物件池 (
InitializePool) 時,依cellPoolSize預先建立 Cell 物件池,滾動時僅對可視範圍內的數據配置 Cell,滾出範圍即回收回池循環利用。 - 數據與顯示分離:數據清單 (
InfiniteCellData) 由列表持有,Cell (InfiniteCell) 於配置顯示時才綁定數據並觸發刷新。
重要 使用前必須先初始物件池 — await InitializePool() 或於 Inspector 勾選 initializePoolOnAwake。
注意 cellPoolSize 需足夠覆蓋可視數量 + extendVisibleRange 的預留量,物件池不足時會輸出錯誤日誌。
提醒 content 節點不需要掛載 LayoutGroup / ContentSizeFitter,Cell 位置由列表自行計算。
建立 Cell 模板
- 透過 Right-Click Create/OxGKit/Infinite ScrollView/Template Infinite Cell.cs (Script) 建立 Cell 腳本模板。
- 透過 Right-Click Create/OxGKit/Infinite ScrollView/Template Infinite Cell (RectTransform Prefab) 建立 Cell 的 RectTransform Prefab 模板。