uni-app textarea输入框在安卓机型下点击出现键盘闪现

发布于 1周前 作者 itying888 来自 Uni-App

uni-app textarea输入框在安卓机型下点击出现键盘闪现

操作步骤:

  • textarea输入框

预期结果:

  • textarea输入框在安卓机型下点击出现键盘

实际结果:

  • textarea输入框在安卓机型下点击出现键盘又消失

bug描述:

  • textarea输入框在安卓机型下点击出现键盘又消失
项目 信息
产品分类 uniapp/小程序/微信
PC开发环境 Windows
PC版本号 Windows 10
HBuilderX 正式
HBuilderX版本 3.95
工具版本号 1.06.2310071win32-x64
基础库版本 3.2.2
项目创建方式 HBuilderX

image


5 回复

没复现出这个问题 你可以用官方的hellouniapp小程序 找到textarea组件 然后测试一下会不会有同样问题


我用苹果机测试没有问题 部分安卓机也没有问题 目前出现问题的是Google Pixel 5机型

回复 2***@qq.com: 解决了吗?我现在也有这个问题

OPPO NEO5也是键盘出现又消失

uni-app 中,textarea 输入框在安卓机型下点击时出现键盘闪现的问题,通常是由于安卓系统的键盘弹出机制与 uni-app 的渲染机制之间的冲突导致的。以下是一些可能的解决方案:

1. 使用 focus 事件延迟

textareafocus 事件中,延迟一段时间再执行相关操作,以避免键盘闪现。

<template>
  <textarea [@focus](/user/focus)="handleFocus"></textarea>
</template>

<script>
export default {
  methods: {
    handleFocus() {
      setTimeout(() => {
        // 在这里执行相关操作
      }, 100); // 延迟 100ms
    }
  }
}
</script>

2. 使用 input 事件替代 focus 事件

有时候,使用 input 事件可以避免键盘闪现的问题。

<template>
  <textarea @input="handleInput"></textarea>
</template>

<script>
export default {
  methods: {
    handleInput() {
      // 在这里执行相关操作
    }
  }
}
</script>

3. 使用 uni.hideKeyboard() 方法

focus 事件中,手动隐藏键盘,然后再显示键盘。

<template>
  <textarea [@focus](/user/focus)="handleFocus"></textarea>
</template>

<script>
export default {
  methods: {
    handleFocus() {
      uni.hideKeyboard();
      setTimeout(() => {
        // 在这里执行相关操作
      }, 100); // 延迟 100ms
    }
  }
}
</script>

4. 使用 uni.setKeyboardHeight() 方法

在某些情况下,设置键盘高度可以避免键盘闪现的问题。

<template>
  <textarea [@focus](/user/focus)="handleFocus"></textarea>
</template>

<script>
export default {
  methods: {
    handleFocus() {
      uni.setKeyboardHeight({
        height: 300 // 设置键盘高度
      });
    }
  }
}
</script>

5. 使用 uni-appinput 组件

如果 textarea 的问题无法解决,可以尝试使用 input 组件替代 textarea,并根据需要调整样式。

<template>
  <input type="text" [@focus](/user/focus)="handleFocus" />
</template>

<script>
export default {
  methods: {
    handleFocus() {
      // 在这里执行相关操作
    }
  }
}
</script>

6. 检查 uni-app 版本

确保你使用的是最新版本的 uni-app,因为官方可能会在后续版本中修复此类问题。

7. 使用原生插件

如果以上方法都无法解决问题,可以考虑使用原生插件来处理键盘的显示和隐藏。

8. 使用 scroll-view 包裹 textarea

有时候,将 textarea 包裹在 scroll-view 中可以避免键盘闪现的问题。

<template>
  <scroll-view>
    <textarea [@focus](/user/focus)="handleFocus"></textarea>
  </scroll-view>
</template>

<script>
export default {
  methods: {
    handleFocus() {
      // 在这里执行相关操作
    }
  }
}
</script>

9. 使用 uni-apppage 生命周期

page 的生命周期中处理键盘的显示和隐藏。

<script>
export default {
  onShow() {
    // 在这里处理键盘的显示和隐藏
  }
}
</script>

10. 使用 uni-appinput 组件的 confirm-type 属性

在某些情况下,设置 confirm-type 属性可以避免键盘闪现的问题。

<template>
  <textarea confirm-type="done" [@focus](/user/focus)="handleFocus"></textarea>
</template>

<script>
export default {
  methods: {
    handleFocus() {
      // 在这里执行相关操作
    }
  }
}
</script>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!