Scrollview中的Boxlayouts

时间:2016-06-07 12:57:24

标签: python kivy kivy-language

我想请你帮忙。

link下的可滚动结构是我想要生成的。

由于Scrollview只接受一个元素,我使用了GridLayout。不知怎的,我不能把任何Boxlayout放在GridLayout中。

你可以帮帮我吗?我弄错了吗?我应该使用其他布局吗?如果是的话,哪一个?

谢谢。

以下是我的.kv文件的输出:http://imgur.com/etilRPg

如果我更改cols:1到cols:2:http://imgur.com/ihWla4Y

,结果如下:

以下是我在.kv文件中尝试的代码:

#:kivy 1.8.0
RootWidget:

    # import container
    container: container

    # fill container
    BoxLayout:
        id: container
        orientation: 'vertical'
        padding: 0
        spacing: 3

        ScrollView:
            size_hint: 1, 1
            pos_hint: {'center_x': .5, 'center_y': .5}


            GridLayout:
                cols: 1
                padding: 0
                spacing: 3
                size_hint: 1, None
                height: self.minimum_height
                do_scroll_x: False

                BoxLayout:
                    height: 260
                    orientation: 'horizontal'
                    canvas.before:
                        Color:
                            rgb: 0.7, 0.7, 0.9
                        Rectangle:
                            size: self.size
                            pos: self.pos


                BoxLayout:
                    height: 260
                    orientation: 'horizontal'
                    canvas.before:
                        Color:
                            rgb: 0.7, 0.7, 0.9
                        Rectangle:
                            size: self.size
                            pos: self.pos


                BoxLayout:
                    height: 260
                    orientation: 'horizontal'
                    canvas.before:
                        Color:
                            rgb: 0.7, 0.7, 0.9
                        Rectangle:
                            size: self.size
                            pos: self.pos

                #type
                Label:
                    height: 260
                    size_hint: 1, None
                    text: 'Typ'

                BoxLayout:
                    height: 260
                    orientation: 'horizontal'
                    canvas.before:
                        Color:
                            rgb: 0.7, 0.7, 0.9
                        Rectangle:
                            size: self.size
                            pos: self.pos

1 个答案:

答案 0 :(得分:0)

如果您要设置heightwidth或其他任何尺码,您需要先在小部件中执行某项操作,然后将其设置为:

size_hint: None, None

这将禁用根据父级的大小设置这些属性以及其他一些内容,即父级中的小部件数量(三个小部件=父级'大小/每个小部件3),至少对于{{{ 1}}或BoxLayout。请查看docs了解更多信息。

或者使用GridLayoutsize_hint_x: None,如果您只想设置size_hint_y: Noneheight,请自动设置其他部分。