如何解决滚动在按钮的 kivy 布局中不起作用
<Builder_Screen>
ScrollView:
do_scroll_y:True
FloatLayout:
Button:
text:"heading"
size_hint_x: .25
size_hint_y: .25
text_size: self.size
halign:"center"
valign:"center"
pos: 0,10
Button:
text:"Paragraph"
halign:"center"
valign:"center"
size_hint_x: .25
size_hint_y: .25
pos: (0,self.height)
我有一些像这样的按钮,位置像 pos: 0,self.height2,self.height3 等等。 但是,滚动布局无法按预期工作。 你能帮我解决这个问题吗!...
解决方法
根据documentation,关于ScrollView
的孩子:
默认情况下,size_hint 是 (1,1),因此内容大小将适合您 ScrollView 完全正确(您将没有任何可滚动的内容)。你必须 停用至少一个 size_hint 指令(x 或 y) child 启用滚动。
因此,您可能需要为您的 size_hint_y: None
设置 FloatLayout
。这会导致进一步的问题,因为您的 size_hint_y
有 Buttons
值。您可以设置 Buttons
的高度并消除 size_hint_y
值。另一种方法是使用 GridLayout
:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
kv = '''
<Builder_Screen>
ScrollView:
do_scroll_y:True
effect_cls: 'ScrollEffect'
GridLayout:
cols: 2
size_hint_y: None
height: self.minimum_height
padding: 5
spacing: 5
Button:
text:"Heading1"
halign:"center"
valign:"center"
size_hint_y: None
height: 48
Button:
text:"Paragraph1"
halign:"center"
valign:"center"
size_hint_y: None
height: 48
Button:
text:"Heading2"
halign:"center"
valign:"center"
size_hint_y: None
height: 48
Button:
text:"Paragraph2"
halign:"center"
valign:"center"
size_hint_y: None
height: 48
Button:
text:"Heading3"
halign:"center"
valign:"center"
size_hint_y: None
height: 48
Button:
text:"Paragraph3"
halign:"center"
valign:"center"
size_hint_y: None
height: 48
'''
class Builder_Screen(Screen):
pass
class TestApp(App):
def build(self):
Builder.load_string(kv)
return Builder_Screen()
TestApp().run()
请注意,每个 Button
都有一个明确的 height
。如果您对其容器使用 height: self.minimum_height
,则这是必需的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。