Reputation: 1217
JMapView control doesn't appear on a FireMonkey form in Android.
Please take a look at my code below, may be I have missed something.
NativeLayout: JNativeLayout;
and Maps: JMapView;
are declared as form's private fields.
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;
After executing this code I see an empty FireMonkey form.
Upvotes: 4
Views: 452
Reputation: 1217
I have solved the problem.
In order to make JMapView control appear on a form I have to execute the following code right after creating JMapView instance:
FJMapView.onCreate(TJBundle.JavaClass.init);
FJMapView.onResume;
Upvotes: 5