滚动视图不滚动按钮

时间:2015-03-10 13:00:04

标签: python scrollview kivy

我想用动态创建的按钮创建一个可滚动的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()

1 个答案:

答案 0 :(得分:0)

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