[英]Kivy Scroll View does not scroll
I use kivys scroll view widget for the first time and I am not sure how I get this to run.我第一次使用 kivys 滚动视图小部件,我不确定如何运行它。 I want to scroll up and done trough the different labels.
我想向上滚动并通过不同的标签完成。
How can I achieve this ?我怎样才能做到这一点?
Which attributes are needed for the scroll view widget ?滚动视图小部件需要哪些属性? Can I use any layout for it ?
我可以使用任何布局吗?
Thanks谢谢
This Code that does not work at the moment:此代码目前不起作用:
<YearLabel@ButtonBehavior+Label>:
<YearScreen>:
canvas.before:
Color:
rgba: 1,1,1,0.25
Rectangle:
pos: self.pos
size: self.size
canvas.after:
Color:
rgba : 0,0,0,1
Rectangle:
pos: 160,1560
size: 419,60
ScrollView:
scroll_timeout: 250
scroll_distance: 20
do_scroll_y: True
do_scroll_x: False
height: 100
GridLayout:
cols : 1
spacing: 10
padding: 10
height: 50
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2020"
color: 0,0,0,1
pos : 0,1200
font_size: "120sp"
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2021"
color: 0,0,0,1
pos: 0,900
font_size: "120sp"
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2022"
color: 0,0,0,1
pos: 0,600
font_size: "120sp"
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2023"
color: 0,0,0,1
pos: 0,300
font_size: "120sp"
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2024"
color: 0,0,0,1
pos: 0,0
font_size: "120sp"
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2025"
color: 0,0,0,1
pos: 0,-300
font_size: "120sp"
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2026"
color: 0,0,0,1
pos: 0,-600
font_size: "120sp"
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2027"
color: 0,0,0,1
pos: 0,-900
font_size: "120sp"
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2028"
color: 0,0,0,1
pos: 0,-1200
font_size: "120sp"
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2029"
color: 0,0,0,1
pos: 0,-1500
font_size: "120sp"
YearLabel:
id: year_label
font_name: "Fonts/sans-serif.ttf"
text : "2030"
color: 0,0,0,1
pos: 0,-1800
font_size: "120sp"
The ScrollView
will not work if its child (the GridLayout
) is smaller than the ScrollView
.在
ScrollView
,如果其子(在将不起作用GridLayout
)比小ScrollView
。 Typically, the GridLayout
would be large enough to hold all its children (the YearLabels
).通常,
GridLayout
将足够大以容纳其所有子项( YearLabels
)。 Conveniently, the GridLayout
can calculate that size. GridLayout
可以方便地计算该大小。 Here is a modified version of your kv
that uses it:这是使用它的
kv
的修改版本:
ScrollView:
scroll_timeout: 250
scroll_distance: 20
do_scroll_y: True
do_scroll_x: False
GridLayout:
cols : 1
spacing: 10
padding: 10
size_hint_y: None # required since we are setting height
height: self.minimum_height # let GridLayout calculate height
Also, I removed the height: 100
from the ScrollView
, since it had no effect.另外,我从
ScrollView
删除了height: 100
,因为它没有效果。
In order for the GridLayout
to calculate minimum_height
, all its children must have well defined heights
.为了让
GridLayout
计算minimum_height
,它的所有子项都必须有明确定义的heights
。 So, I added to your YearLabel
rule:所以,我添加到你的
YearLabel
规则中:
<YearLabel@ButtonBehavior+Label>:
size_hint: 1, None
height: dp(100)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.