what_wrong 2025-05-07 19:48 采纳率: 83.3%
浏览 20
已结题

鸿蒙 bindPopup如何设置避让软键盘

鸿蒙 bindPopup组件,在软键盘拉起时会被遮挡,无法继续操作气泡,如何处理?

  • 写回答

4条回答 默认 最新

  • what_wrong 2025-05-07 19:52
    关注

    气泡默认不会避让软键盘,可以通过设置keyboardAvoidMode为KeyboardAvoidMode.DEFAULT,来使气泡避让键盘。这时如果当前没有位置放下气泡时,气泡会从预设位置平移覆盖宿主组件。

    
    @Entry
    @Component
    struct PopupExample {
      @State handlePopup: boolean = false;
    
      @Builder popupBuilder() {
        Column({ space: 2 }) {
          Text('Custom Popup').fontSize(20)
            .borderWidth(2)
          TextInput()
        }.width(200).padding(5)
      }
    
      build() {
        Column({ space: 100 }) {
          TextInput()
          Button('PopupOptions')
            .onClick(() => {
              this.handlePopup = !this.handlePopup;
            })
            .bindPopup(this.handlePopup!!, {
              width: 200,
              builder: this.popupBuilder(),
              placement: Placement.Bottom,
              mask: false,
              autoCancel: false,
              keyboardAvoidMode: KeyboardAvoidMode.DEFAULT
            })
            .position({x: 100, y: 300})
        }
        .width('100%')
      }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月15日
  • 已采纳回答 5月7日
  • 创建了问题 5月7日