Kivy - 我的ScrollView没有滚动

时间:2016-09-14 12:03:22

标签: android python scroll kivy kivy-language

我在使用Kivy库的Python应用程序中遇到问题。特别是我试图在TabbedPanelItem中创建一个可滚动的元素列表,但我不知道为什么我的列表不会滚动。

这是我的kv文件:

#:import sm kivy.uix.screenmanager
ScreenManagement:
     transition: sm.FadeTransition()
     SecondScreen:

<SecondScreen>:
    tabba: tabba
    name: 'second'
    FloatLayout:
        background_color: (255, 255, 255, 1.0)
        BoxLayout:
            orientation: 'vertical'
            size_hint: 1, 0.10
            pos_hint: {'top': 1.0}
            canvas:
                Color:
                    rgba: (0.98, 0.4, 0, 1.0)
                Rectangle:
                    pos: self.pos
                    size: self.size
            Label:
                text: 'MyApp'
                font_size: 30
                size: self.texture_size

        BoxLayout:
            orientation: 'vertical'
            size_hint: 1, 0.90
            Tabba:
                id: tabba

        BoxLayout:
            orientation: 'vertical'
            size_hint: 1, 0.10
            pos_hint: {'bottom': 1.0}
            Button:
                background_color: (80, 1, 0, 1.0)
                text: 'Do nop'
                font_size: 25


<Tabba>:
    do_default_tab: False
    background_color: (255, 255, 255, 1.0)

    TabbedPanelItem:
        text: 'First_Tab'
        Tabs:

    TabbedPanelItem:
        text: 'Second_Tab'
        Tabs:

    TabbedPanelItem:
        text: 'Third_Tab'
        Tabs:


<Tabs>:
    grid: grid
    ScrollView:
        scroll_timeout: 250
        scroll_distance: 20
        do_scroll_y: True
        do_scroll_x: False
        GridLayout:
            id: grid
            cols: 1
            spacing: 10
            padding: 10
            Label:
                text:'scroll'
                color: (0, 0, 0, 1.0)
            Label:
                text:'scroll'
                color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)
        Label:
            text:'scroll'
            color: (0, 0, 0, 1.0)

这是我的.py代码:

__author__ = 'drakenden'

__version__ = '0.1'

import kivy
kivy.require('1.9.0') # replace with your current kivy version !

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen, FadeTransition
from kivy.properties import StringProperty, ObjectProperty,NumericProperty
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.utils import platform
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.scrollview import ScrollView

class Tabs(ScrollView):
    def __init__(self, **kwargs):
        super(Tabs, self).__init__(**kwargs)


class Tabba(TabbedPanel):
    pass


class SecondScreen(Screen):
    pass

class ScreenManagement(ScreenManager):
    pass

presentation = Builder.load_file("layout2.kv")

class MyApp(App):

    def build(self):
        return presentation


MyApp().run()

我/我做错了什么?

(也接受了关于UI改进的评论和建议)

1 个答案:

答案 0 :(得分:1)

我自己还没有使用过kivy一段时间,但如果我记得很冒险: 因为ScrollView中的布局应该比滚动视图更大 ex ScrollView宽度:1000px,GridView 1100px。 因此可以将其滚动100px