HarmonyOS 鸿蒙Next release中如何设置横竖屏

发布于 1周前 作者 vueper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next release中的横竖屏设置

HarmonyOS 鸿蒙Next release中,默认模屏,鼠标正常能使用,将系统配成竖屏后,鼠标无法拖动到下半截,感觉是模竖最大值没旋转,不知道在哪里可以修改

2 回复

HarmonyOS 鸿蒙Next release中的横竖屏设置主要通过修改应用窗口的orientation属性实现。在支持横竖屏切换的APP中,打开下拉菜单中的“自动旋转”功能即可。开发者可通过编程方式在应用中设置旋转策略,如首页仅竖屏,详情页面允许横竖屏切换。具体实现可通过设置窗口的显示方向属性并监听窗口尺寸变化来适配横竖屏。如果问题依旧没法解决请联系官网客服:https://www.itying.com/category-93-b0.html

HarmonyOS 鸿蒙Next release中设置横竖屏需要找到EntryAbility.ets

设置横竖屏(设置竖屏)


    windowStage.getMainWindowSync().setPreferredOrientation(window.Orientation.PORTRAIT)

完整代码

onWindowStageCreate(windowStage: window.WindowStage): void {

    //参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-window-V5
    // 沉浸式状态栏
    let windowClass: window.Window | undefined = undefined;
    windowStage.getMainWindow((err: BusinessError, data) => {
      windowClass=data
      let promise = windowClass.setWindowLayoutFullScreen(true);
      promise.then(() => {
        //设置状态栏透明背景
        windowStage.getMainWindowSync().setWindowSystemBarEnable(['status']).then(() => {
          const systemBarProperties: window.SystemBarProperties = {
            statusBarColor: '#00000000'
          };
          //设置窗口内导航栏、状态栏的属性
          windowStage.getMainWindowSync().setWindowSystemBarProperties(systemBarProperties)
            .then(() => {
              console.info('Succeeded in setting the system bar properties.');
            }).catch((err:object) => {
            console.error('Failed to set the system bar properties. Cause: ' + JSON.stringify(err));
          });
        })
      }).catch((err: BusinessError) => {
        console.error(`Failed to set the window layout to full-screen mode. Cause code: ${err.code}, message: ${err.message}`);
      });
    })
    //设置横竖屏(设置竖屏)
    windowStage.getMainWindowSync().setPreferredOrientation(window.Orientation.PORTRAIT)

    windowStage.loadContent('pages/Index', (err) => {
      if (err.code) {
        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
        return;
      }
      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');
    });
  }
回到顶部