私のプロジェクトでは、カスタム レンダラーで lwuit List(main) を使用しています。
別のリスト (ラップ) を展開/折りたたむ、展開可能なリスト項目を実装する目的に従っています。
最初に、ボタンとリストを使用してコンテナーを作成しました (折りたたみ/展開動作なし)。しかし、メインリストで使用すると、ラップされたリストで項目を選択できないという問題に直面しました。
ですから、次の 2 つの問題を解決していただければ幸いです。
- 標準の 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.
}
}