Как по-разному раскрасить четные строки и нечетные строки списка в LWUIT? - PullRequest
1 голос
/ 11 января 2012

В приложении LWUIT есть List.Я хочу, чтобы odd rows и even rows были разными colors.Как этого добиться?

Ответы [ 2 ]

1 голос
/ 11 января 2012

Вы можете установить два разных UIID для строк.Устанавливая этот UIID, вы можете выборочно изменять цвета ваших строк.

РЕДАКТИРОВАТЬ

Хорошо, это будет сложнее.Render и установите его в List с помощью List.setRender(Render r).Класс «Рендер» будет расширяться с ListCellRender.В этом классе вы можете установить UIID на Render, установив его выбранные или невыбранные стили.

См. Этот пример.@Shai Almog может получить больше информации о вашей проблеме.

http://www.lwuit.com/2008/07/lwuit-list-renderer-by-chen-fishbein.html

0 голосов
/ 31 декабря 2012

Вам нужен рендерер ячеек общего списка, вам, вероятно, придется создавать стили в коде или устанавливать 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 (код, полученный по этой ссылке).

...