2016-03-30 55 views
4

Liste listeleri için özelleştirilmiş bir liste içeren bir ListViewim var. Kaydırma çubuğunu her zaman görünür olacak şekilde nasıl biçimlendirebilirim (kaydırılacak bir şey varsa ...), daha geniş (varsayılan 2 yerine 10 pt) ve ona farklı bir renk verilsin mi?Kivy Listview'da kaydırma çubuğu nasıl biçimlendirilir?

DoScroll.py dosyası: Burada

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() 

Ve DoScroll.kv dosyasıdır.

#: 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) 

cevap

2

ListView sırayla liste öğelerini tutan GridView tutan bir ScrollView içerir. karşılık gelen kv kurallar, bu (listview.py) vardır:

<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 özellikleri bar_width, bar_color, bar_inactive_color sahiptir. Bunlara lv = ListView() için lv.container.parent.bar_width vb. Aracılığıyla erişilebilir.

+0

Cool! Çok teşekkürler. Bu gerçekten çok yardımcı olur. –