
- Kivy 教程
- Kivy - 首頁
- Kivy 基礎
- Kivy - 入門
- Kivy - 安裝
- Kivy - 架構
- Kivy - 檔案語法
- Kivy - 應用
- Kivy - Hello World
- Kivy - 應用生命週期
- Kivy - 事件
- Kivy - 屬性
- Kivy - 輸入
- Kivy - 行為
- Kivy 按鈕
- Kivy - 按鈕
- Kivy - 按鈕事件
- Kivy - 按鈕顏色
- Kivy - 按鈕大小
- Kivy - 按鈕位置
- Kivy - 圓形按鈕
- Kivy - 停用按鈕
- Kivy - 圖片按鈕
- Kivy 元件
- Kivy - 元件
- Kivy - 標籤
- Kivy - 文字輸入
- Kivy - 畫布
- Kivy - 直線
- Kivy - 複選框
- Kivy - 下拉列表
- Kivy - 視窗
- Kivy - 滾動檢視
- Kivy - 輪播圖
- Kivy - 滑塊
- Kivy - 圖片
- Kivy - 彈出視窗
- Kivy - 開關
- Kivy - 微調器
- Kivy - 分隔器
- Kivy - 進度條
- Kivy - 氣泡
- Kivy - 標籤頁面板
- Kivy - 散點圖
- Kivy - 手風琴
- Kivy - 檔案選擇器
- Kivy - 顏色選擇器
- Kivy - 程式碼輸入
- Kivy - 模態檢視
- Kivy - 切換按鈕
- Kivy - 相機
- Kivy - 樹檢視
- Kivy - reStructuredText
- Kivy - 操作欄
- Kivy - 播放器
- Kivy - 模板檢視
- Kivy - 虛擬鍵盤
- Kivy - 觸控漣漪
- Kivy - 音訊
- Kivy - 影片
- Kivy - 拼寫檢查
- Kivy - 效果
- Kivy - 輸入記錄器
- Kivy - OpenGL
- Kivy - 文字
- Kivy - 文字標記
- Kivy - 設定
- Kivy 佈局
- Kivy - 佈局
- Kivy - 浮動佈局
- Kivy - 網格佈局
- Kivy - 箱式佈局
- Kivy - 堆疊佈局
- Kivy - 錨點佈局
- Kivy - 相對佈局
- Kivy - 分頁佈局
- Kivy - 回收佈局
- Kivy - 佈局巢狀
- Kivy 高階概念
- Kivy - 配置物件
- Kivy - 圖集
- Kivy - 資料載入器
- Kivy - 快取管理器
- Kivy - 控制檯
- Kivy - 動畫
- Kivy - 多筆畫
- Kivy - 時鐘
- Kivy - SVG
- Kivy - UrlRequest
- Kivy - 剪貼簿
- Kivy - 工廠
- Kivy - 手勢
- Kivy - 語言
- Kivy - 圖形
- Kivy - 繪圖
- Kivy - 打包
- Kivy - Garden
- Kivy - 儲存
- Kivy - 向量
- Kivy - 工具函式
- Kivy - 檢查器
- Kivy - 工具
- Kivy - 日誌記錄器
- Kivy - 幀緩衝區
- Kivy 應用和專案
- Kivy - 繪圖應用
- Kivy - 計算器應用
- Kivy - 計時器應用
- Kivy - 相機處理
- Kivy - 圖片檢視器
- Kivy - 貝塞爾曲線
- Kivy - 畫布壓力測試
- Kivy - 圓形繪製
- Kivy - 元件動畫
- Kivy - 其他
- Kivy 有用資源
- Kivy - 快速指南
- Kivy - 有用資源
- Kivy - 討論
Kivy - 回收佈局
通常情況下,如果應用程式介面需要大量元件來顯示資料項,其效能會下降。Kivy 中的 RecycleView 元件提供了一種靈活的替代方案。使用 RecycleView,可以僅檢視大型資料集的選定部分。它能夠重用元件來顯示可滾動的專案列表。此功能對於允許使用者滾動瀏覽產品列表、圖片等非常有用。
回收佈局的機制基於 MVC(模型-檢視-控制器)架構。
RecycleView.data 屬性構成模型層。
RecycleDataModel 類實現檢視層。檢視被分割成佈局和檢視,並使用介面卡實現。它在 RecycleLayout 中定義,RecycleLayout 是一個抽象類。
對於第三個元件——控制器——RecycleViewBehavior 類定義了邏輯互動。RecycleView 類實現邏輯。它在“kivy.uix.recycleview”模組中定義。
您需要例項化一個 RecycleView 物件,它會自動建立檢視和資料類。RecycleView 的兩個必須設定的重要屬性是 viewclass 和 data。
viewclass − 將此屬性設定為元件類的名稱。可回收檢視將由此類的物件組成。例如,如果 viewclass 是 Button,則回收檢視將是可滾動的按鈕列表。任何元件都可以用作此屬性的值。
data − data 本質上是一個字典列表,並使用這些字典根據需要生成 viewclass 的例項。這是一個字典列表,其鍵對映到 viewclass 的相應屬性名稱。例如,如果 viewclass 設定為 Button,則資料可以是字典項列表,在每個字典中,鍵應該是 Button 類的屬性之一。
RecycleView 元件樹還必須包含某個佈局管理器,以便可以找到視口。RecycleView 可以使用兩種佈局。一個是 RecycleBoxLayout(在“kivy.uix.recycleboxlayout”模組中可用),另一個是 RecycleGridLayout(在“kivy.uix.recyclegridlayout”模組中)。這兩個佈局類都繼承了 BoxLayout 和 GridLayout 類。
示例
讓我們在 RecycleView 元件中載入一百個按鈕。它們被新增到 RecycleBoxLayout 中。
要將按鈕用作回收檢視中的元素,請將其 viewclass 設定為 Button。
其 data 屬性是一個字典列表。每個字典都有一個“text”鍵,每個鍵的值都是按鈕標題,例如 BTN 1、BTN 2 等。以下列表推導式語句組合了字典:
data=[{'text': 'BTN {}'.format(str(x))} for x in range(20)] [{'text': 'BTN 0'}, {'text': 'BTN 1'}, {'text': 'BTN 2'}, {'text': 'BTN 3'}, {'text': 'BTN 4'}, {'text': 'BTN 5'}, {'text': 'BTN 6'}, {'text': 'BTN 7'}, {'text': 'BTN 8'}, {'text': 'BTN 9'}, {'text': 'BTN 10'}, {'text': 'BTN 11'}, {'text': 'BTN 12'}, {'text': 'BTN 13'}, {'text': 'BTN 14'}, {'text': 'BTN 15'}, {'text': 'BTN 16'}, {'text': 'BTN 17'}, {'text': 'BTN 18'}, {'text': 'BTN 19'}]
以下是 RecycleView 應用的“kv”語言指令碼:
RecycleView: viewclass: 'Button' data: [{'text': 'BTN {}'.format(str(x))} for x in range(20)] RecycleBoxLayout: default_size: None, dp(56) default_size_hint: 1, None size_hint_y: None height: self.minimum_height orientation: 'vertical'
App 類只需要載入此“kv”檔案,只需保留帶有 pass 語句的 build() 方法即可。
from kivy.app import App from kivy.uix.button import Button from kivy.core.window import Window Window.size = (720,400) class recycled(App): def build(self): pass recycled().run()
輸出
透過執行上述 Python 指令碼測試程式碼的輸出。您應該會看到如下所示的可滾動按鈕檢視:
