Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как скрыть панель навигации в компоненте TMapView в Delphi 12.1

Delphi , Программа и Интерфейс , Главные формы

При разработке приложений с использованием Delphi 12.1 и компонента TMapView из FireMonkey Framework, пользователи могут столкнуться с проблемой отображения кнопок навигации и указателя GPS в нижнем правом углу компонента после клика на маркер. В данной статье мы рассмотрим, как скрыть эти кнопки, чтобы улучшить внешний вид и удобство использования приложения.

Проблема

По умолчанию, при клике на маркер в компоненте TMapView, в его нижней части отображаются кнопки навигации и указателя GPS. Это поведение может быть нежелательным для некоторых приложений.

Решение, предложенное в контексте

В контексте заданной проблемы пользователи обнаружили, что можно отключить панель инструментов карты (MapToolBar) с помощью метода setMapToolbarEnabled(false) в Google Maps. Однако, в Delphi 12.1 и компоненте TMapView такой возможности напрямую не предоставлено.

После исследования кода FireMonkey Framework, было обнаружено, что интерфейс JGoogleMap содержит необходимые методы для отключения панели инструментов. Этот интерфейс используется внутри компонента TAndroidMapView. Попытки доступа к экземпляру интерфейса с помощью RTTI не увенчались успехом.

Альтернативное решение

Существует альтернативный способ доступа к экземпляру JGoogleMap через компонент TMapView. Это можно сделать, используя метод getMapAsync, который принимает в качестве параметра коллбэк, вызываемый при готовности JGoogleMap. В этом коллбэке можно вызвать метод setMapToolbarEnabled(False), чтобы скрыть панель навигации.

Пример кода

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Maps,
  Androidapi.JNI.PlayServices.Maps;

type
  TForm1 = class(TForm)
    MapView1: TMapView;
    procedure FormCreate(Sender: TObject);
  private
    FMap: JGoogleMap;
    FMapReadyCallback: JOnMapReadyCallback;
    procedure MapReady(AMap: JGoogleMap);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

uses
  Androidapi.JNIBridge;

type
  TMapReadyCallback = class(TJavaLocal, JOnMapReadyCallback)
  private
    FCallback: TProc<JGoogleMap>;
  public
    { JOnMapReadyCallback }
    procedure onMapReady(googleMap: JGoogleMap); cdecl;
  public
    constructor Create(const ACallback: TProc<JGoogleMap>);
  end;

constructor TMapReadyCallback.Create(const ACallback: TProc<JGoogleMap>);
begin
  inherited Create;
  FCallback := ACallback;
end;

procedure TMapReadyCallback.onMapReady(googleMap: JGoogleMap);
begin
  FCallback(googleMap);
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  LMapView: JMapView;
begin
  if Supports(MapView1, JMapView, LMapView) then
  begin
    FMapReadyCallback := TMapReadyCallback.Create(MapReady);
    LMapView.getMapAsync(FMapReadyCallback);
  end;
end;

procedure TForm1.MapReady(AMap: JGoogleMap);
begin
  FMap := AMap;
  FMap.getUiSettings.setMapToolbarEnabled(False);
end;

end.

Вывод

Используя предложенный пример кода, разработчики могут скрыть панель навигации в компоненте TMapView, что позволит улучшить пользовательский интерфейс и сделать приложение более персонализированным.

Создано по материалам из источника по ссылке.

Разработчики приложений на Delphi 12.1 столкнулись с задачей скрыть кнопки навигации и указателя GPS в компоненте TMapView после клика на маркер, чтобы улучшить внешний вид приложения.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Главные формы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 15:52:05/0.0032129287719727/0