Python 在底部出现的弹出窗口中滚动视图是否太小?
我试图在kivy的弹出窗口中添加一个滚动视图,但由于某些原因,滚动视图似乎只占据了弹出窗口的一小部分,并从底部向下移动 我能想到的唯一一件事就是显式设置滚动视图的高度,但我不知道怎么做,因为它需要随窗口大小和弹出窗口缩放。高度似乎包括标题栏 这是我的密码:Python 在底部出现的弹出窗口中滚动视图是否太小?,python,layout,kivy,Python,Layout,Kivy,我试图在kivy的弹出窗口中添加一个滚动视图,但由于某些原因,滚动视图似乎只占据了弹出窗口的一小部分,并从底部向下移动 我能想到的唯一一件事就是显式设置滚动视图的高度,但我不知道怎么做,因为它需要随窗口大小和弹出窗口缩放。高度似乎包括标题栏 这是我的密码: scroll = ScrollView(size_hint=(1, None)) popup = Popup(title='Thanks Stack Overflow!', size_hint=(0.9, 0.9), content=scro
scroll = ScrollView(size_hint=(1, None))
popup = Popup(title='Thanks Stack Overflow!', size_hint=(0.9, 0.9), content=scroll)
box = BoxLayout(orientation='vertical', size_hint=(1, None))
scroll.add_widget(box)
box.bind(minimum_height=box.setter('height'))
for i in range(1000):
box.add_widget(Button(text='test button {}'.format(i), size_hint=(1, None)))
这就是我得到的结果:
它是可滚动的,运行良好,只是它没有占用正确的空间
编辑:所以现在我手动设置的高度是相对于弹出窗口的大小,因为弹出窗口的标题似乎没有太大的变化。但我还是希望有更好的方法 这是我更新的python代码文件
from kivy.uix.popup import Popup
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
from kivy.uix.boxlayout import BoxLayout
from kivy.app import runTouchApp
scroll = ScrollView()
popup = Popup(title='Thanks Stack Overflow!', size_hint=(0.9, 0.9), content=scroll)
grid = GridLayout(cols=1, size_hint=(1, None))
scroll.add_widget(grid)
grid.bind(minimum_height=grid.setter('height'))
for i in range(1000):
grid.add_widget(Button(text='test button {}'.format(i), size_hint=(1, None)))
box = BoxLayout()
box.add_widget(popup)
runTouchApp(box)
我删除了ScrollView的size\u提示(1,无)
。现在它们是默认值(1,1)。此外,将GridLayout与ScrollView而不是BoxLayout一起使用总是有意义的。BoxLayout仅采用其父级的大小。您需要比其父对象更大的对象,以便它可以滚动
旁注:看一下kivy文件,我认为它们让它变得容易多了
另外,我会设置按钮的高度。如果你不设置它们,我不知道它们的高度是从哪里来的。我没有添加这一点,因为我想让我的解决方案尽可能接近您的代码
这很有效。我认为您必须将大小提示设置为“无”,滚动视图才能真正工作,但显然不能