2016-09-14 96 views
0

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

这里是我的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

我自己还没有使用kivy一段时间,但如果记得exacly: 由于内滚动型布局应该比滚动视图 离滚动型宽度BIGGER :1000px,GridView 1100px。 所以它可以滚动100px

+0

所以,你是否建议设置内部布局的高度低于ScrollView? – Drakenden

+1

Drakenden不应该它应该更大:) –

+0

是的,最后我解决了设置ScrollView的高度大于GridView。谢谢! – Drakenden