Flutter开发 键盘弹起导致底部溢出问题

这篇具有很好参考价值的文章主要介绍了Flutter开发 键盘弹起导致底部溢出问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        flutter版本:3.7.12

        表现:登录页为从上往下Column布局,但是内容不足以撑满一整屏(约70%),键盘弹起的时候导致底部溢出,查了一下资料,都说给Scaffold加上属性

resizeToAvoidBottomInset: false,

加上后确实不会再出现溢出表现,但是同时页面也没有随着键盘的弹起而弹起,导致一些小屏手机输入位置被键盘挡住,用户不知道输入内容,登录按钮也是直接被挡住。

        解决方案:在Scaffold最外层加入SingleChildScrollView,手动控制器滚动位置。

1、声明一个控制变量

ScrollController scrollController = ScrollController();

2、给SingleChildScrollView赋值控制变量

return Scaffold(
      resizeToAvoidBottomInset: false,
      body: SingleChildScrollView(
            controller: scrollController,
            child: Container(
                // 其他内容...
            )
      )
)

3、页面尺寸变化时加入监听

  /// 页面尺寸改变时回调
  @override
  didChangeMetrics() {
    super.didChangeMetrics();
    // 在页面重新渲染完成之后,通过MediaQuery.of(context).viewInsets.bottom获取软键盘高度
    WidgetsBinding.instance?.addPostFrameCallback((timeStamp) {
      isKeyboardOpen = MediaQuery.of(context).viewInsets.bottom > 0;
      if (isKeyboardOpen) {
        scrollController.animateTo(
          // 重点,本文可以直接滚动到最底部满足要求,根据自己需要进行跳转滚动位置,
          // 最后是定位到聚焦的某一个输入位置进行滚动
          scrollController.position.maxScrollExtent,
          duration: Duration(milliseconds: 500),
          curve: Curves.easeInOut,
        );
      }
    });
  }

        最后键盘弹起的时候,底部不会出现溢出提示,并且页面可以滚动并自动在弹起的时候滚动到最底部(本项目适合,自己的项目可以定位到需要滚动到的聚焦组件位置),保证内容可见,问题解决~文章来源地址https://www.toymoban.com/news/detail-799063.html

到了这里,关于Flutter开发 键盘弹起导致底部溢出问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决uni-app微信小程序input,textarea输入框在底部时,键盘弹起页面整体上移问题

    问题是这样的input ,textarea获取焦点时会自动调起手机键盘,设置 :adjust-position=“true”,和不设置都会导致键盘弹起时页面整体上移 问题分析 input 获取焦点时会自动调起手机键盘,设置 :adjust-position=“true”,会导致键盘弹起时页面整体上移 思路: 设置使键盘弹起使页面不

    2024年02月11日
    浏览(70)
  • h5键盘弹起底部菜单(按钮)被顶起-vue自定义指令解决

            开发H5中测试过程中发现在安卓手机上,input/textarea 获取焦点 软键盘弹出 会让absolute/fixed或者使用flex局部 固定在底部的元素(固定底部栏)顶起来问题;在搜索后发现安卓上在键盘弹起的时候浏览器   body height 100%   其实只有键盘以上范围,这里决解方法有很多可

    2024年02月12日
    浏览(55)
  • Flutter 让软键盘不再自动弹起

    1、问题说明: 在开发中,经常遇到这种事,一个页面有输入框,点击输入框后,会弹起软键盘,同时输入框会聚焦,手动收起软键盘后,点击另一个按钮前往下一个页面或者显示一个弹窗,返回或者关闭弹窗后,由于输入框仍然有焦点,软键盘又会自动弹起,非常影响使用

    2024年02月14日
    浏览(76)
  • Flutter 解决App登录页面软键盘遮挡住登录按钮或顶起底部控件的问题

    问题点 最终效果图 问题点: 当前使用的是 Column 布局,弹窗软键盘后页面超出范围。 A RenderFlex overflowed by 0.533 pixels on the bottom. 解决方式 在 Scaffold 或者 CupertinoPageScaffold 中设置 resizeToAvoidBottomInset 为false 不修改 resizeToAvoidBottomInset 属性的话,可以使用 ListView 、 SingleChildScrol

    2024年02月04日
    浏览(55)
  • uniapp 微信小程ios端键盘弹起后导致页面无法滚动

    新增页面 用户可以主动添加输入文本框 添加多了就会导致当前页面出现滚动条,这就导致ios端滚动页面的时候去点击输入框键盘抬起再关闭的时候去滚动页面发现页面滚动不了(偶尔出现),经过多次测试发现是键盘抬起的时候 主动向上滑动 100%出现这种问题 这次项目主要使用了

    2024年02月05日
    浏览(54)
  • uniapp,app端时input组件弹起系统键盘时,键盘会顶住页面导致页面会上移

    这个时候,我们可以修改键盘的弹出模式。 App平台软键盘弹出有 adjustResize|adjustPan 两种模式,默认为 adjustPan 模式,小程序平台只支持 adjustPan 模式,H5平台因不同浏览器而异 配置方式,在 pages.json 中配置 style 官方描述:修改系统键盘的模式

    2024年01月18日
    浏览(42)
  • uniapp - [微信小程序平台] 实现输入支付密码键盘弹框,uniapp小程序端底部弹起密码输入键盘组件效果,类似电商平台支付密码、弹出支付密码输入框、交易密码(详细示例源码,一键复制开箱即用!)

    在uniapp微信小程序端平台,详细实现底部弹出输入支付密码框组件,自定义密码输入框键盘功能(密码自动带星号、黑点保护隐私,自定义数字键盘),类似电商在付款时输入支付密码的组件。 直接复制组件源码,改下样式就能用了。 复制运行即可查看效果。

    2024年02月03日
    浏览(124)
  • Android 全局监听软键盘弹起隐藏 动态修改布局并适配无限循环的问题

    要在 Android 应用中全局检测软键盘的弹起,您可以使用 ViewTreeObserver.OnGlobalLayoutListener 监听器来监听布局树的变化。当软键盘弹起或隐藏时,布局树会发生变化,因此您可以在监听器中捕获这些变化。 在上面的代码中, rootView 是您布局的根视图,您需要将其替换为您实际布局

    2024年02月11日
    浏览(40)
  • 如何逐步排查因文件问题导致的内存溢出

    逐步排查内存溢出问题通常需要一系列的步骤,其中逐渐增大传输文件的大小,并观察内存使用情况,是一种合理的方法。下面是您可以采取的步骤: 增大传输文件大小: 将传输的文件大小逐步增大,这样您可以模拟更大的资源负载。这有助于观察内存使用情况在不同负载

    2024年02月11日
    浏览(44)
  • 【Flutter】Flutter 实现 Text 自动换行 解决长文本溢出问题

    你是否渴望成为 Flutter 的专家,掌握更多的技巧和最佳实践?我们有个好消息要告诉你! Flutter 从零到一 基础入门到应用上线全攻略 正在等待你的加入!这个专栏包含了你需要的所有 Flutter 学习资源,包括代码示例和深度解析。专栏内容会持续更新,价格也会随之上涨。现

    2024年02月12日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包