我正在尝试在 Android 平台上的 LWUIT 应用程序中使用本机组件。
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。
高度应该如何设置?我错过了什么?
您知道在 Android 上使用 PeerComponent 的工作示例程序吗?我搜索了网络,但只能找到一些片段,其中不清楚代码是从哪里调用的,它是在哪个线程上执行的等等。
谢谢。