Я пытаюсь использовать нативные компоненты в приложении LWUIT на платформе Android.
private Component createNativeTextEdit() {
final Object[] result = new Object[1];
AndroidImplementation.runOnAndroidUIThreadAndWait(LWUITActivity.currentActivity, new Runnable() {
@Override
public void run() {
EditText nativeView = new EditText(LWUITActivity.currentActivity);
nativeView.setText("Type here..");
result[0] = PeerComponent.create(nativeView);
}
});
return (Component)result[0];
}
Затем я помещаю компонент внутри формы:
mMainForm = new Form();
mMainForm.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
mMainForm.addComponent(createNativeTextEdit());
mMainForm.show();
Затем я получаю «IllegalArgumentException: ширина и высота должны быть> 0», когда система пытается нарисовать новую форму.
Я проследил проблему до вызова AndroidImplementation.PeerWrapper.getBuffer (), а значения, возвращаемые getWidth () и getHeight (): width = 474 и height = 0.
Как должна быть установлена высота? Чего мне не хватает?
Знаете ли вы о рабочем примере программы, которая использует PeerComponent на Android? Я искал в Интернете, но смог найти только некоторые фрагменты, в которых неясно, откуда вызывается код, в каком потоке он выполняется и т. Д.
Спасибо.