HarmonyOS 图片放大时会预留下面导航栏的边界范围,导致显示不全需要滑动,怎么控制占全屏显示

图片放大时会预留下面导航栏的边界范围,导致显示不全需要滑动,怎么控制占全屏显示(如果手动设置fullwindows,再次缩小需要关闭这个属性,会抖动)

HarmonyOS
2024-08-08 16:25:46
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa
import { window } from '@kit.ArkUI'; 
 
@Component 
export struct ViewA { 
  @Link isShow: boolean; 
  private window?: window.Window; 
 
  aboutToAppear(): void { 
    /*通过setWindowLayoutFullScreen(true),当前页面的确可以全屏显示; 
    但是关闭当前页面,设置setWindowLayoutFullScreen(false)后,上一个页面状态栏出现的时候有跳动,这个有什么好的方式解决? 
    或者是否还有其他方式,可以设置全屏展示的呢? 
    */ 
    window.getLastWindow(getContext(this)).then((win) => { 
      this.window = win; 
      this.window.setWindowLayoutFullScreen(true); 
    }) 
  } 
 
  build() { 
    Column() { 
      Scroll() { 
        Image($r('app.media.111')) 
          .objectFit(ImageFit.Auto) 
          .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) 
      } 
      .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) 
    } 
    .onClick(() => { 
      this.window?.setWindowLayoutFullScreen(false, () => { 
        this.isShow = false; 
      }) 
    }) 
    .backgroundColor(Color.Black) 
    .width('100%') 
    .height('100%') 
    .expandSafeArea([SafeAreaType.SYSTEM], [SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM]) 
  } 
}

请参考上面代码适配,之前会闪一下原因是因为生命周期不能保证调用时序,所以是先消失图片在设置非全屏状态,导致出现的闪动问题后续可以通过DismissContentCoverAction接口禁用全模态转场的返回手势就能保证在自己写逻辑的时候先取消窗口全屏在退出预览图片页面

分享
微博
QQ
微信
回复
2024-08-08 20:28:57
相关问题
HarmonyOS web显示不全
560浏览 • 1回复 待解决
Dialog如何覆盖状态全屏显示
10421浏览 • 1回复 待解决
HarmonyOS Image显示GIF图片控制
290浏览 • 1回复 待解决
HarmonyOS Tabs 控件 底部显示不全
35浏览 • 1回复 待解决
Tab导航tabbar子组件突出上沿显示
2251浏览 • 1回复 待解决
Scroll组件内显示不全问题
1188浏览 • 1回复 待解决
HarmonyOS 需要频道导航功能样例
32浏览 • 1回复 待解决
HarmonyOS 怎么去掉底部导航
67浏览 • 1回复 待解决