HarmonyOS 如何让自定义弹窗不被顶出去

自定义弹窗点击输入框时,整个弹窗被顶出去了,这个避让模式能否控制或关闭

因为这个弹窗有几个页面都会有弹出,不想使用半模态实现该弹窗的效果,有没有什么办法解决?

HarmonyOS
2024-12-25 08:19:19
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

自定义弹窗仅适用于简单提示场景,不能替代页面使用。由于弹窗存在完全避让输入法行为,即在软键盘弹出时,会自动向上抬起软键盘高度,因此如果弹窗高度过大时,可能会导致部分区域不可见。

建议使用模态框实现如果页面路由使用Navigation实现,可以将dialog改为一个navDestination,将mode类型设置为NavDestination.DIALOG即可达到dialog的效果,其通过顶高整体的方式使得TextInput不会被遮挡,参考如下代码:

@Component
struct Dialog01 {
  @Consume('pageInfos') pageInfos: NavPathStack;

  build() {
    NavDestination() {
      Stack() {
        Column()
          .width('100%')
          .height('100%')
          .backgroundColor(Color.Gray)
          .opacity(0.1)
          .onClick(() => {
            this.pageInfos.pop();
          })
        Column() {
          Text('登陆asdas').fontSize(15)
          TextInput({ placeholder: "请输入手机号" }).margin(5)
          TextInput({ placeholder: "请输入验证码" }).margin(5)
          Button("登录")
        }
        .padding(10)
        .width(300)
        .height(200)
        .backgroundColor(Color.White)
        .borderRadius(10)
      }
    }.hideTitleBar(true).mode(NavDestinationMode.DIALOG)
  }
}

@Entry
@Component
struct Index {
  @Provide('NavPathStack') pageInfos: NavPathStack = new NavPathStack()
  isLogin: boolean = false;

  @Builder
  PagesMap(name: string) {
    Dialog01()
  }

  build() {
    Navigation(this.pageInfos) {
      Button('点击登录').width('80%').onClick(() => {
        this.pageInfos.pushPathByName('Dialog01', '');
      })
    }.mode(NavigationMode.Stack).titleMode(NavigationTitleMode.Mini).title('主页').navDestination(this.PagesMap)
  }
}
分享
微博
QQ
微信
回复
2024-12-25 10:40:48
相关问题
HarmonyOS 如何封装自定义弹窗
1242浏览 • 1回复 待解决
自定义弹窗自定义转场动画
2327浏览 • 1回复 待解决
HarmonyOS 自定义弹窗CustomDialog
1039浏览 • 1回复 待解决
HarmonyOS 如何制作自定义加载弹窗
1491浏览 • 1回复 待解决
如何设置自定义弹窗位置
3094浏览 • 1回复 待解决
HarmonyOS 自定义弹窗如何更新弹窗的UI
1165浏览 • 1回复 待解决
如何自定义弹窗中再次弹窗
3533浏览 • 1回复 待解决
HarmonyOS 自定义弹窗选择
1662浏览 • 1回复 待解决
自定义弹窗如何嵌套使用
3034浏览 • 1回复 待解决
HarmonyOS 如何设置自定义弹窗透明
1284浏览 • 1回复 待解决
使用自定义弹窗实现分享弹窗
1680浏览 • 1回复 待解决
HarmonyOS 唤起自定义弹窗crash
1088浏览 • 1回复 待解决
HarmonyOS 自定义弹窗 (CustomDialog)问题
1553浏览 • 1回复 待解决
HarmonyOS 自定义弹窗封装问题
1234浏览 • 1回复 待解决
HarmonyOS 如何创建自定义的全局弹窗
1167浏览 • 1回复 待解决
如何自定义popup弹窗的布局?
1346浏览 • 2回复 待解决