【问题标题】:JMapView control doesn't appear on a FireMonkey form in AndroidJMapView 控件不会出现在 Android 中的 FireMonkey 表单上
【发布时间】:2014-11-20 15:31:48
【问题描述】:

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

【问题讨论】:

    标签: delphi firemonkey


    【解决方案1】:

    我已经解决了这个问题。

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

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

    【讨论】:

      猜你喜欢
      • 2015-05-21
      • 2012-02-21
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多