uni-app中 softinputMode:adjustResize 不起作用

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

uni-app中 softinputMode:adjustResize 不起作用

示例代码:

"app-plus": {"softinputMode": "adjustResize"}

操作步骤:

  • 正常操作

预期结果:

  • 不上推

实际结果:

  • 上推了一点

bug描述:

在pages.json中设置了"app-plus": {“softinputMode”: “adjustResize”},当键盘弹起时页面还是往上推了一点,还有悬浮的输入框体验贼差

ps:现在页面内容的已经出现滚动条了,没有出现滚动条的页面没事

附件

bugs.zip


2 回复

uni-app 中,softinputMode: adjustResize 是用于控制软键盘弹出时页面布局调整的行为。如果你发现 adjustResize 不起作用,可能是由于以下几个原因:

1. 平台差异

  • AndroidadjustResize 在 Android 平台上通常是可以正常工作的。如果不起作用,可能是由于某些特定的 Android 版本或设备的问题。
  • iOS:在 iOS 平台上,adjustResize 的行为可能不如 Android 那样直接。iOS 默认的行为是 adjustPan,即页面整体上移,而不是调整布局。

2. 页面结构问题

  • 确保你的页面结构是支持 adjustResize 的。例如,页面中需要有可滚动的区域(如 scroll-view),以便在软键盘弹出时能够调整布局。
  • 如果页面内容过多,且没有使用 scroll-view,可能会导致 adjustResize 无法正常工作。

3. CSS 样式问题

  • 检查页面的 CSS 样式,确保没有设置 height: 100%position: fixed 等样式,这些样式可能会影响 adjustResize 的行为。

4. manifest.json 配置

  • 确保在 manifest.json 中正确配置了 softinputMode。例如:
    {
      "app-plus": {
        "softinputMode": "adjustResize"
      }
    }

5. uni-app 版本问题

  • 确保你使用的是最新版本的 uni-app,旧版本可能存在一些已知的 bug 或问题。

6. 自定义导航栏

  • 如果你使用了自定义导航栏,可能会导致 adjustResize 不起作用。可以尝试使用原生导航栏,或者手动处理软键盘弹出时的布局调整。

7. 第三方插件或库

  • 如果你使用了某些第三方插件或库,可能会影响 adjustResize 的行为。可以尝试禁用这些插件或库,看看问题是否依然存在。

8. 调试和日志

  • 使用 console.log 或调试工具,检查软键盘弹出时页面的布局变化,看看是否有异常。

9. 替代方案

  • 如果 adjustResize 仍然不起作用,可以考虑使用 adjustPan,或者手动监听软键盘的弹出和收起事件,动态调整页面布局。

示例代码

{
  "app-plus": {
    "softinputMode": "adjustResize"
  }
}
<template>
  <view class="container">
    <scroll-view scroll-y="true" style="height: 100%;">
      <input type="text" placeholder="请输入内容" />
      <!-- 其他内容 -->
    </scroll-view>
  </view>
</template>

<style>
.container {
  display: flex;
  flex-direction: column;
  height: 100%;
}
</style>
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!