2016-03-30 33 views
4

私はlistitemsのカスタマイズされたボタンを含むListViewを持っています。スクロールバーをいつも見えるように書式設定するにはどうすればいいですか(スクロールするものがある場合など)、幅を広げ(デフォルト2ではなく10pt)、別の色を付けます。Kivy Listviewでスクロールバーを書式設定する方法

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順番にリスト項目を保持GridViewを保持し、ScrollViewが含まれています。対応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

Cool!どうもありがとう。これは本当に多くの助けになります。 –