0

在我的项目中,我使用带有自定义渲染器的 lwuit List(main)。

我遵循实现可扩展列表项的目的,它扩展/折叠另一个列表(包装)。

最初,我创建了带有按钮和列表的容器(没有折叠/展开行为),但是当我在列表中使用它时,我遇到了无法选择包装列表中的项目的问题。

所以,如果你能帮助我解决两个问题,我会很高兴:

  1. 我可以使用标准的 lwuit 工具修复它吗?
  2. 如何通过单击 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.
    }
}
4

1 回答 1

0

这个组件能解决你的问题吗?

弹出选择组

于 2014-01-15T15:16:08.857 回答