2016-09-14 160 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