LWUIT Пользовательский расширяемый компонент в элементе списка
В моем проекте я использую lwuit List(main) с пользовательским рендерером.
Я следую за целью реализации расширяемого элемента списка, который разворачивает / сворачивает другой список (обернутый).
Изначально я создал контейнер с кнопками и списками (без поведения свертывания / развертывания), но когда я использовал его в основном списке, я столкнулся с проблемой невозможности выбора элементов в свернутом списке.
Итак, я буду рад, если вы поможете мне с двумя проблемами:
- Можно ли это исправить с помощью стандартных инструментов lwuit?
- Как я могу скрыть свой свернутый список, нажав HeaderBar (видимость просто скрывает содержимое, но оставляет большой пробел)?
Изображения для наглядности (ListItem - элемент основного списка, который не отображается на изображении):
private void fillForm() {
mF = new Form();
fillList1();
fillList2();
fillList();
mF.show();
}
private void fillList() {
mList = new CList();
mList.setRenderer(new CRenderer());
mList.addItem(c1);
mList.addItem(c2);
mF.addComponent(c1);
mF.addComponent(c2);
}
private void fillList1() {
c1 = new Container();
b1 = new Button();
b1.getUnselectedStyle().setBorder(Border.createLineBorder(2, 0x000000));
b1.addActionListener(this);
mList1 = new List();
mList1.setName("l1");
mList1.setRenderer(new DefaultListCellRenderer());
mList1.addItem("one");
mList1.addItem("two");
mList1.addItem("three");
mList1.addItem("four");
mList1.addItem("five");
c1.addComponent(b1);
c1.addComponent(mList1);
}
private void fillList2() {
c2 = new Container();
b2 = new Button();
b2.getUnselectedStyle().setBorder(Border.createLineBorder(2, 0x000000));
b2.addActionListener(this);
mList2 = new List();
mList2.setName("l2");
mList2.setRenderer(new DefaultListCellRenderer());
mList2.addItem("путин");
mList2.addItem("ест");
mList2.addItem("детей");
mList2.addItem("больше чем");
mList2.addItem("любит родину");
c2.addComponent(b2);
c2.addComponent(mList2);
}
private class CRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(List list, Object value, int index, boolean isSelected) {
return (Container)value; //To change body of generated methods, choose Tools | Templates.
}
}
1 ответ
Может ли этот компонент решить вашу проблему?