![]() |
|---|
| © dotmodus |
由於語法渲染問題而影響閱讀體驗, 請移步博客閱讀~
本文GitPage地址
However, examples from the official document have shown the basics of this widget. But for newbies, it is easy to write an unworking widget due to a lack of understanding of it.
Quick Start
from kivy.uix.gridlayout import GridLayoutfrom kivy.uix.button import Buttonfrom kivy.uix.scrollview import ScrollViewfrom kivy.core.window import Windowfrom kivy.app import runTouchApplayout = GridLayout(cols=1, spacing=10, size_hint_y=None)## Make sure the height is such that there is something to scroll.layout.bind(minimum_height=layout.setter('height'))for i in range(100):btn = Button(text=str(i), size_hint_y=None, height=40)layout.add_widget(btn)root = ScrollView(size_hint=(1, None), size=(Window.width, Window.height))root.add_widget(layout)runTouchApp(root)
Why Am I failed to scroll my widget
The problem is that after you settled everything in your kv file, the sub-widget has the same size as the ScrollView widget by default. So, to have a functional scrolling behavior, you’d like to make sure the sub-widget is larger than the ScrollView widget. Let’s go back to the example from the document:
ScrollView:do_scroll_x: Falsedo_scroll_y: TrueLabel:size_hint_y: Noneheight: self.texture_size[1]text_size: self.width, Nonepadding: 10, 10text:'really some amazing text\n' * 100
In this kv file, two lines are important to redefine the height of this sub-widget.
size_hint_y: Noneheight: self.texture_size[1]
The problem is self.texture_size[1] is for text only. You’d like to replace it with an int, 1000, for example.
But of course, there is a better resolution from @amd, 2015
height: self.minimum_height
An example could show as:
ScrollView:size: 300, 20do_scroll_x: Falsedo_scroll_y: TrueBoxLayout:size_hint_y: Noneheight: self.minimum_heightpadding: 10, 10MyButton:text: 'hit me 1'MyButton:text: 'hit me 2'MyButton:text: 'hit me 3'MyButton:text: 'hit me 4'MyButton:text: 'hit me 5'MyButton:text: 'hit me 6'
Case closed!!!
Enjoy~
由於語法渲染問題而影響閱讀體驗, 請移步博客閱讀~
本文GitPage地址
GitHub: Karobben
Blog:Karobben
BiliBili:史上最不正經的生物狗

