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显示不全
413浏览 • 1回复 待解决
Dialog如何覆盖状态全屏显示
10236浏览 • 1回复 待解决
HarmonyOS Image显示GIF图片控制
109浏览 • 1回复 待解决
Tab导航tabbar子组件突出上沿显示
2138浏览 • 1回复 待解决
Scroll组件内显示不全问题
942浏览 • 1回复 待解决
HarmonyOS 页面如何设置全屏显示
254浏览 • 1回复 待解决
如何禁用窗口全屏显示功能
1730浏览 • 1回复 待解决
startWindowIcon可以设置全屏显示吗?
684浏览 • 1回复 待解决
禁用窗口全屏显示功能如何实现?
309浏览 • 1回复 待解决
如何控制CustomDialog显示层级
545浏览 • 1回复 待解决
长按滑动显示不同内容
741浏览 • 1回复 待解决