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

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

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

HarmonyOS
2天前
浏览
收藏 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
微信
回复
2天前
相关问题
自定义弹窗自定义转场动画
1179浏览 • 1回复 待解决
HarmonyOS 如何封装自定义弹窗
25浏览 • 1回复 待解决
如何自定义弹窗中再次弹窗
2323浏览 • 1回复 待解决
HarmonyOS 自定义弹窗选择
399浏览 • 1回复 待解决
自定义弹窗如何嵌套使用
1727浏览 • 1回复 待解决
HarmonyOS 如何设置自定义弹窗透明
43浏览 • 1回复 待解决
如何设置自定义弹窗位置
2097浏览 • 1回复 待解决
HarmonyOS 如何制作自定义加载弹窗
374浏览 • 1回复 待解决
HarmonyOS 使用全局自定义弹窗
70浏览 • 1回复 待解决
HarmonyOS 全局自定义弹窗demo
321浏览 • 1回复 待解决
HarmonyOS 自定义弹窗CustomDialog问题
640浏览 • 1回复 待解决
HarmonyOS 自定义弹窗的问题
734浏览 • 1回复 待解决
HarmonyOS 自定义弹窗CustomDialog 问题
42浏览 • 1回复 待解决
HarmonyOS 自定义弹窗层级问题
52浏览 • 1回复 待解决
HarmonyOS 自定义弹窗控制问题
45浏览 • 1回复 待解决