键盘弹起后页面整体上推

主要问题:

输入框定位在页面底部,页面(包括自定义的导航栏)在键盘弹起后整体上推,;输入框本身就位于页面顶端,则不会造成上推事件。

解决:

1、adjustPosition属性设置为fasle,键盘弹起时,不上推页面

2、根据键盘高度设置输入框的位置,实现键盘顶起输入框的效果

具体代码如下

<Textarea 
    style={{bottom: height + 'px'}}
    autoFocus={true}
    value={value}
    maxlength={-1}
    showConfirmBar={false}
    placeholder='请输入留言...'
    onInput={(e) => this.changeContent(e)}
    adjustPosition={false}
    onFocus={(e) => this.getHeight(e)}
    onBlur={this.resetHeight}
    ></Textarea>

changeContent = (e) =>{
    this.setState({
      value: e.detail.value
    })
}

getHeight = (e) => {
    // 键盘弹起时
    this.setState({
    //在编辑器中e.detail中只有value,真机上才有height
      height: e?.detail?.height == 0 ? 0 : e.detail.height
    })
 }

resetHeight = () => {
    // 键盘收起时
    this.setState({
      height: 0
    })
  }

 

posted @ 2021-06-16 14:40  文姬  阅读(739)  评论(0)    收藏  举报