2014-03-07 91 views
0

我想在python 3.3中使用kivy爲listview創建一個自定義listview項目。如何在kivy中創建自定義列表視圖項目?

listitem應該包含一個標籤和3個按鈕。

我創建了設置爲自定義項目類適配器CLS一個ListView如下:

 ListView: 
      id: cue_list 
      adapter: ListAdapter(data=[], cls=ListItemButton) 
      item_strings: [] 

然後我設置類的規則是這樣的:

<ListItemButton>: 
    size_hint_y: root.size_hint_y 
    height: root.height 
    orientation:"horizontal" 
    Button: 
     size_hint: 0.2, 1.0 
     text: "delete" 

然後在我的Python文件創建一個函數添加一些項目:

def addcue(self): 
     self.lv.adapter.data.extend(["new item"]) 
     self.lv._trigger_reset_populate() 

但奇怪的是,結果是這樣的: http://i.stack.imgur.com/dNmz1.png

如何在kivy中使用.kv文件語言從頭開始指定listview項目?

回答

1

你的小部件具有ListItemButton的屬性和樣式,因爲......好吧,這就是繼承的工作原理。如果你不想要這個,創建你自己的列表項widget子類http://kivy.org/docs/api-kivy.uix.listview.html#kivy.uix.listview.SelectableView。例如,ListItemButton是SelectableViewButton的子類。

此外,所有的刪除按鈕都會重疊,因爲ListItemButton不是佈局,因此不會與您提供的size_hint信息相關,因此所有按鈕的默認位置都爲0,0,默認大小爲100,100。如果您想要佈局行爲,請將列表項類設置爲佈局,例如BoxLayoutSelectableView的子類。

相關問題