HarmonyOS鸿蒙Next中华为地图怎么单独全屏显示

HarmonyOS鸿蒙Next中华为地图怎么单独全屏显示 不想在EntryAbility里面设置整个app全屏,只想设有华为地图的界面全屏。

父组件是

Stack() {
  HuaWeiMapComponent(this.mapListenerController)
}
.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])

子组件集成了华为地图,是这样的

Stack() {
  MapComponent({ mapOptions: this.mapOption, mapCallback: this.callback, customInfoWindow: this.customInfoWindow })
    .width('100%')
    .height('100%')
}
.expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP])

地图不能全屏,状态栏上面还是白色的


更多关于HarmonyOS鸿蒙Next中华为地图怎么单独全屏显示的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

可以使用setWindowLayoutFullScreen()接口设置全屏
通过getLastWindow获取当前应用内最上层的子窗口,若无应用子窗口,返回应用主窗口 只实现某个页面的全屏,可以在aboutToAppear设置全屏,在aboutToDisappear设置恢复

import window from '@ohos.window';
import { router } from '@kit.ArkUI';

@Component
struct TabPage {
  @State message: string = 'Hello World';

  setFullScreen(status: boolean) {
    window.getLastWindow(getContext(this)).then((window) => {
      window.setWindowLayoutFullScreen(status)
    })
  }

  aboutToAppear(): void {
    // 出现和消失这里调用具体逻辑
  }

  aboutToDisappear(): void {
  }

  build() {
    Column() {
      Text(this.message)
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .onClick(() =>{
          router.back()
        })

      Button("设置沉浸式").onClick(() => {
        this.setFullScreen(true)
      })
      Button("取消设置沉浸式").onClick(() => {
        this.setFullScreen(false)
      })
    }
    .backgroundColor("#ffde8242")
    .height('100%')
    .width('100%')
  }
}

更多关于HarmonyOS鸿蒙Next中华为地图怎么单独全屏显示的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,要单独全屏显示华为地图,可以通过以下步骤实现:

  1. config.json文件中,确保已正确配置华为地图的权限和依赖项。
  2. MainAbilitySlice或相应的页面中,使用MapView控件加载地图。
  3. 设置MapView的布局参数,使其占满整个屏幕。

具体代码示例如下:

import ohos.agp.components.ComponentContainer;
import ohos.agp.components.LayoutScatter;
import ohos.agp.components.MapView;
import ohos.agp.utils.LayoutAlignment;
import ohos.agp.window.service.WindowManager;

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        // 获取WindowManager实例
        WindowManager windowManager = WindowManager.getInstance();
        // 设置全屏显示
        windowManager.setLayoutParams(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT, LayoutAlignment.CENTER);

        // 加载地图视图
        ComponentContainer rootLayout = (ComponentContainer) LayoutScatter.getInstance(this).parse(ResourceTable.Layout_ability_main, null, false);
        MapView mapView = (MapView) rootLayout.findComponentById(ResourceTable.Id_mapView);
        mapView.setLayoutParams(new ComponentContainer.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_PARENT, ComponentContainer.LayoutConfig.MATCH_PARENT));
        super.setUIContent(rootLayout);
    }
}

ability_main.xml布局文件中,确保MapView的布局参数设置为MATCH_PARENT

<MapView
    ohos:id="$+id:mapView"
    ohos:width="match_parent"
    ohos:height="match_parent"/>

通过以上步骤,华为地图将在应用中单独全屏显示。

在HarmonyOS鸿蒙Next中,要将华为地图单独全屏显示,可以按照以下步骤操作:打开华为地图应用,点击右上角的“全屏”按钮(通常是一个方框图标),地图将自动切换至全屏模式。退出全屏时,再次点击同一按钮或使用返回手势即可。确保应用已更新至最新版本以获得最佳体验。

回到顶部