2014-03-07 85 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的子类。

相关问题