LWUIT应用程序中有List
。我想让odd rows
和even rows
成为不同的colors
。如何实现?
答案 0 :(得分:1)
您可以为行设置两个不同的UIID。设置此UIID可以有选择地修改行的颜色。
修改强>
好的,这将更加困难。
您需要制作Render
并使用List
在List.setRender(Render r)
中进行设置。
'Render'类将从ListCellRender
延伸。在此课程中,您可以将UIID设置为Render
,设置其选定或未选定的样式。
请参阅此示例。 @Shai Almog可以为您的问题提供更多信息。
http://www.lwuit.com/2008/07/lwuit-list-renderer-by-chen-fishbein.html
答案 1 :(得分:0)
您需要的是通用列表单元格渲染器,您可能必须在代码中创建样式,或者从资源编辑器设置UIID。
List list = new List(createGenericListCellRendererModelData());
list.setRenderer(new GenericListCellRenderer(createGenericRendererContainer(), createGenericRendererContainer()));
private Container createGenericRendererContainer() {
Container c = new Container(new BorderLayout());
c.setUIID("ListRenderer");
Label name = new Label();
name.setFocusable(true);
name.setName("Name");
c.addComponent(BorderLayout.CENTER, name);
Label surname = new Label();
surname.setFocusable(true);
surname.setName("Surname");
c.addComponent(BorderLayout.SOUTH, surname);
CheckBox selected = new CheckBox();
selected.setName("Selected");
selected.setFocusable(true);
c.addComponent(BorderLayout.WEST, selected);
return c;
}
private Hashtable[] createGenericListCellRendererModelData() {
Hashtable[] data = new Hashtable[5];
data[0] = new Hashtable();
data[0].put("Name", "Shai");
data[0].put("Surname", "Almog");
data[0].put("Selected", Boolean.TRUE);
data[1] = new Hashtable();
data[1].put("Name", "Chen");
data[1].put("Surname", "Fishbein");
data[1].put("Selected", Boolean.TRUE);
data[2] = new Hashtable();
data[2].put("Name", "Ofir");
data[2].put("Surname", "Leitner");
data[3] = new Hashtable();
data[3].put("Name", "Yaniv");
data[3].put("Surname", "Vakarat");
data[4] = new Hashtable();
data[4].put("Name", "Meirav");
data[4].put("Surname", "Nachmanovitch");
return data;
}
此处的详细信息:http://lwuit.blogspot.com/2011/03/list-rendering-easy-way-generic-list.html(代码来自此链接)。