2016-06-15 20 views

答えて

2

以下はあなたのListItemの外観を変更することができListAdapterとlist_items_arg_converterを使用してリストビュー項目の間にパディングを追加します。基になるGridLayoutのパディングは変更されませんが、項目の高さだけが変更されます。このことができます

希望、
乾杯

[Kivy] v1.9.1
[パイソン] v2.7.11(v2.7.11:6d1b6a68f775、2015年12月5日、20時32分19秒)[MSCのV。 1500 32ビット(Intel)]

from kivy.uix.boxlayout import BoxLayout 
from kivy.adapters.dictadapter import ListAdapter 
from kivy.uix.button import Button 
from kivy.uix.listview import ListView, ListItemButton 
from kivy.uix.label import Label 
from kivy.uix.gridlayout import GridLayout 
from kivy.app import App 

from random import randint 


class MyApp(App): 
    items = 20 
    pad = 20 
    space = 20 
    text_border = 10 

    def build(self): 
     mainlayout = BoxLayout(orientation = 'vertical') 
     self.list_adapter = ListAdapter(data = ["Item #{0}".format(i) for i in range(self.items)], cls = ListItemButton, 
             args_converter=self.list_item_args_converter, sorted_keys = []) 
     self.list_view = ListView(adapter=self.list_adapter, size_hint_y=.3) 
     self.list_view.container.padding = self.pad 
     self.list_view.container.spacing = self.space 
     mainlayout.add_widget(self.list_view) 
     return mainlayout 

    def list_item_args_converter(self,col,obj): 
     return { 
      'text': obj, 
      'size_hint_y': .3, 
      'text_size' : (self.root.width-2*self.pad-2*self.text_border , None), 
      'height': 32, 
      'halign': 'left', 
      'valign': 'middle', 
      'deselected_color':[.5,.5,.5,1], 
      'selected_color':[1.,1.,1.,1] 
     } 


if __name__ == '__main__': 
    MyApp().run() 
+0

問題はあなたが項目20にスクロールできない、あなたは修正する方法を知っていますか? – TheoretiCAL

+0

コードを変更しました。スクロールは今では機能します(まずはすべきである...ごめんなさい)。このソリューションでは、項目の背景が黒色でなければなりません。私は基本的なgridlayoutのパディングを変更した後にスクロールを修正する方法を理解していませんでした... – Patrick

+0

私はあなたの以前の解決策に問題があったと思った: "あなたは慎重に希望のスクロール/パン効果を得るためにコンテンツのsize_hintを指定する必要があります"グリッドレイアウトの親であるスクロールビューのドキュメント – TheoretiCAL

関連する問題