HarmonyOS textinput autofocus 聚焦的时候键盘会把页面顶上去,无法输入内容?

ROM有关,键盘会把NavitorContent顶上去,规避方案:不自动聚焦问题目前还没有解决麻烦请帮忙分析解决

阅读 494
1 个回答

页面中需要有承接焦点的组件,如果没有其他组件,组件中的TextInput就会聚焦;

可以将焦点转移实现取消TextInput获取焦点的效果;

示例代码

因为根据是否存在默认交互逻辑,可将组件分为可获焦和不可获焦组件,所以将焦点转移的时候有两种方案:

1、存在默认交互逻辑的组件(默认可获焦):Button、TextInput等,只需通过将defaultFocus属性设置为true即可获取焦点:

@Entry
@Component
struct Index {
  controller: TextInputController = new TextInputController()

  build() {
    Row() {
      TextInput({
        placeholder: 'wait input...',
        text: '',
        controller: this.controller
      })
      Button('placeholder')
        .defaultFocus(true)
    }
  }
}

2、不存在默认交互逻辑的组件(默认不可获焦):Text、Image等,通过将focusable设置为true将此类组件转换为可获焦状态后再获取焦点

@Entry
@Component
struct Index {
  controller: TextInputController = new TextInputController()

  build() {
    Row() {
      TextInput({
        placeholder: 'wait input...',
        text: '',
        controller: this.controller
      })
      Text('placeholder')
        .focusable(true)
        .defaultFocus(true)
    }
  }
}

页面上移:可以通过安全区属性expandSafeArea进行处理

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