2016-03-30 31 views
4

我有一個ListView包含listitems的自定義按鈕。我該如何格式化滾動條使其始終可見(如果有東西需要滾動......),請將其變寬(10個點代替默認的2個點)並給它一個不同的顏色?如何在基維列表視圖中格式化滾動條

的DoScroll.py文件:

from kivy.app import App 
from kivy.uix.boxlayout import BoxLayout 
from kivy.uix.listview import ListItemButton 

class ShowItems(BoxLayout): 
    def get_list(self): 
     self.results.item_strings = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"} 

    def show_capital(self, capital): 
     print capital 

class CapitalButton(ListItemButton): 
    pass 

class DoScrollApp(App): 
    pass 

if __name__ == '__main__': 
    DoScrollApp().run() 

這裏是DoScroll.kv文件。

#: import DoScroll DoScroll 
#: import ListAdapter kivy.adapters.listadapter.ListAdapter 


<CapitalButton>: 
    text_size: self.width - 50, None 
    halign: 'left' 
    valign: 'middle' 
    font_size: 16 
    on_press: app.root.show_capital(self.text) 

ShowItems: 

<ShowItems>: 
    results: results_list 
    orientation: "vertical" 
    BoxLayout: 
     height: "40dp" 
     size_hint_y: None 
     Button: 
      text: "Get the list" 
      on_press: root.get_list() 
    ListView: 
     id: results_list 
     adapter: 
      ListAdapter(data=[], args_converter=lambda row_index, 
       an_obj: {'text': an_obj,'size_hint_y': None,'height': 40}, cls=DoScroll.CapitalButton) 

回答

2

ListView包含ScrollView,則持有該GridView拿着列表項。相應kv規則這些(從listview.py):

<ListView>: 
    container: container 
    ScrollView: 
     pos: root.pos 
     on_scroll_y: root._scroll(args[1]) 
     do_scroll_x: False 
     GridLayout: 
      cols: 1 
      id: container 
      size_hint_y: None 

ScrollView具有屬性bar_widthbar_colorbar_inactive_color。這些可以通過lv.container.parent.bar_width等訪問,對於lv = ListView()

+0

酷!非常感謝。這確實有很大的幫助。 –

相關問題