HarmonyOS Next如何解决智慧多窗弹窗布局错乱问题?

阅读 640
1 个回答

可能应用未考虑分屏窗口尺寸变小的情况,弹窗高度设置为固定值,且底部按钮使用position属性设置了固定位置,导致整体布局错乱。
使用constraintSize属性给弹窗高度限定最大值,同时使用Scroll组件包裹弹窗内容区域(一多的延伸能力),通过给内容区域的Column组件设置layoutWeight(一多的占比能力)属性,是其占据剩余空间,使操作按钮居于底部显示。当内容高度超过内容区域高度的时候可以滚动进行查看,示例代码如下:

@CustomDialog
struct CustomDialogComp {
  controller: CustomDialogController = new CustomDialogController({ 'builder': '' });

  build() {
    Column() {
      Text($r('app.string.welcome'))
        // ...
      Column() {
        Scroll() {
          Text($r('app.string.dialog_content'))
            // ...
        }
      }
      .layoutWeight(1)

      Row({ space: 12 }) {
        Button($r('app.string.disagree'))
          // ...
        Button($r('app.string.agree'))
          // ...
      }
      .height(56)
      .alignItems(VerticalAlign.Top)
    }
    .constraintSize({
      maxHeight: '80%'
    })
    .height(400)
    // ...
  }
}

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进