JMapView控件不会出现在Android中的FireMonkey表单中

时间:2014-11-20 15:31:49

标签: delphi firemonkey

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表单。

1 个答案:

答案 0 :(得分:5)

我已经解决了这个问题。

为了使JMapView控件出现在表单上,​​我必须在创建JMapView实例后立即执行以下代码:

  FJMapView.onCreate(TJBundle.JavaClass.init);
  FJMapView.onResume;