
- 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 庫提供 “kivy.effects” 子包來控制在 Kivy 應用中使用 ScrollView 元件時的捲軸溢位效果。Effect 類可以執行諸如反彈、更改不透明度或防止滾動超出正常邊界等操作。
共有三個 Effect 類:
ScrollEffect - 用於實現效果的基類。它只計算滾動和滾動溢位。此類定義在 kivy.effects.scroll 模組中。
DampedScrollEffect - 使用滾動溢位資訊允許使用者比預期拖動更多。一旦使用者停止拖動,位置將返回到邊界之一。此類的定義在 kivy.effects.dampedscroll 模組中。
OpacityScrollEffect - 使用滾動溢位資訊來降低滾動檢視元件的不透明度。當用戶停止拖動時,不透明度將恢復為 1。此類的定義在 kivy.effects.opacityscroll 模組中。
這些類使用 KineticEffect 作為基類來計算運動中的速度。
要在 ScrollView 的滾動行為上應用這些類的任何效果,請將這些類中的一個設定為 ScrollView 元件的 effect_cls 屬性的值。
scr = ScrollView(size=Window.size) scr.eefect_cls=ScrollEffect
示例
下面的 “kv” 語言指令碼構建一個 ScrollView,其中向 GridLayout 添加了 100 個按鈕。“effect_cls” 屬性設定為 ScrollEffect 類。
#:import ScrollEffect kivy.effects.scroll.ScrollEffect #:import Button kivy.uix.button.Button <RootWidget> effect_cls: ScrollEffect GridLayout: size_hint_y: None height: self.minimum_height cols: 1 on_parent: for i in range(100): self.add_widget(Button(text=str(i), size_hint_y=None))
上面的 “kv” 程式碼使用名為 RootWidget 的類規則。下面 Python 程式碼中 App 類的 build() 方法返回 RootWidget 類的物件。
from kivy.uix.gridlayout import GridLayout from kivy.uix.button import Button from kivy.uix.scrollview import ScrollView from kivy.effects.dampedscroll import DampedScrollEffect from kivy.core.window import Window from kivy.app import App from kivy.core.window import Window Window.size = (720,350) class RootWidget(ScrollView): pass class scrollableapp(App): def build(self): return RootWidget() scrollableapp().run()
輸出
從命令列執行上述 Python 程式。您將獲得一個帶有滾動檢視的應用程式視窗,顯示按鈕的快照。您可以使用啟用的 ScrollEffect 上下滾動。

您可以透過在 RootWidget 類中指定屬性來自定義 Effect 類,並將其用作 “effect_cls” 屬性。
例如,您可以設定用於滾動的 max 和 min 邊界。overscroll 屬性是在使用者滾動溢位(即超出邊界)時計算的值。