JMapView控件不会出现在Android中的FireMonkey表单上。
请看下面我的代码,可能是我错过了什么。
NativeLayout: JNativeLayout;
和Maps: JMapView;
被声明为表单的私有字段。
procedure TForm3.FormShow(Sender: TObject);
var
MapOptions: JGoogleMapOptions;
Camera: JCameraPosition;
LatLng: JLatLng;
begin
CallInUIThreadAndWaitFinishing(
procedure
begin
LatLng := TJLatLng.JavaClass.init(0, 0);
Camera := TJCameraPosition.JavaClass.init(LatLng, 3, 0, 0);
MapOptions := TJGoogleMapOptions.JavaClass.init;
MapOptions.camera(Camera);
MapOptions.mapType(TJGoogleMap.JavaClass.MAP_TYPE_NORMAL);
MapOptions.compassEnabled(False);
MapOptions.rotateGesturesEnabled(False);
MapOptions.tiltGesturesEnabled(False);
Maps := TJMapView.JavaClass.init(SharedActivity, MapOptions);
NativeLayout := TJNativeLayout.JavaClass.init(SharedActivity,
MainActivity.getTextEditorProxy.getWindowToken);
NativeLayout.setControl(Maps);
NativeLayout.SetPosition(10, 10);
NativeLayout.SetSize(600, 600);
NativeLayout.SetFocus(true);
end);
end;
执行此代码后,我看到一个空的FireMonkey表单。
答案 0 :(得分:5)
我已经解决了这个问题。
为了使JMapView控件出现在表单上,我必须在创建JMapView实例后立即执行以下代码:
FJMapView.onCreate(TJBundle.JavaClass.init);
FJMapView.onResume;