Разделение экрана пропорционально LWUIT
Я хочу разделить экран на 30% и 70% по вертикали. Как мне добиться этого с помощью lwuit? Я использовал / попробовал GridLayout
но он разделяет экран поровну. Нужен пример кода для этого.
Заранее спасибо!
2 ответа
Оба других ответа не удастся при повороте экрана устройства.
Вы можете использовать два подхода, использовать макет таблицы, который поддерживает процентное распределение ограничений макета.
Или создать подкласс Contaienr
который отменяет calcPreferredSize
метод и возвращает размерность 30 или 70 процентов соответственно. Затем просто добавьте их обоих в BoxLayout
контейнер и использовать по желанию, например:
Container c30 = new Container() {
public Dimension calcPreferredSize() {
new Dimension(Display.getInstance().getPreferredHeight(), (int)(Display.getInstance().getPreferredWidth() * 0.7));
}
};
Создайте класс, который получает контейнер:
public class split extends Container {
public split(int h)
{
super(); // you can set your layout type here
setPreferredH(h);
}
}
Затем добавьте компоненты этого класса в вашу форму:
public class e extends Form {
private Container c1, c2;
private TextField f1,f2;
public e()
{
super("test split");
c1 = new split(30*getPreferredH()/100);
c2 = new split(70*getPreferredH()/100);
f1 = new TextField("ghgjhg");
f2 = new TextField("jkdhuhg");
c1.addComponent(f1);
c2.addComponent(f2);
setLayout(new BoxLayout(BoxLayout.Y_AXIS));
addComponent(c1);
addComponent(c2);
}
}
Вы даже можете установить backgroundPainter
в класс раскола, чтобы показать визуально расщепление.