滚动视图不是滚动按钮

Scrollview not scrolling button

我想创建一个带有动态创建按钮的可滚动 Floatlayout(我可以在其中滚动绘图板的一种绘画)。不幸的是,我出来的代码不起作用,并且在滚动 FloatLayout 时按钮不会移动。如何将按钮附加到 FloatLayout?

import kivy
kivy.require('1.0.7')
from kivy.app import App
from kivy.uix.scrollview import ScrollView
from kivy.lang import Builder
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.button import Button

Builder.load_string('''
<Scroller>
    view: glayout
    FloatLayout:
        id: glayout
        width: 2000
        height: 2000
        size_hint: (None, None)
''')

class Main(App):
    def build(self):
        self.root=Scroller()
        return self.root

class Scroller(ScrollView):
    def __init__(self, **kwargs):
        super(Scroller, self).__init__(**kwargs)
        a = Button(size_hint=(None,None), width=200, height=200)
        self.ids.glayout.add_widget(a)
        a.bind(pos=self.ids.glayout.pos)

if __name__ in ('__main__'):
    app = Main()
    app.run()

FloatLayout 处理大小,而不是位置。最简单的解决方案是将 FloatLayout 替换为 RelativeLayout,它处理大小,位置相对于 RelativeLayout 原点。