flutter 软键盘弹起导致定位底部按钮浮动在键盘上的问题

1、1.1.19版本一下的,可以设置resizeToAvoidBottomInset为false,键盘弹起不会resize。

Scaffold(
       appBar: AppBar(''),
       resizeToAvoidBottomPadding: false, //输入框抵住键盘
       body:,
)

2、固定页面的的高度,将高度写死。

body: SingleChildScrollView(
          child: MediaQuery.removePadding(
            context: context,
            removeTop: true,
            removeBottom: true,
            child: Container(
              height: MediaQuery.of(context).size.height - 56.0 - MediaQuery.of(context).padding.bottom - MediaQuery.of(context).padding.top,
              child: Container(),
          )
      ),

旨在分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
Flutter中,可以通过使用`WidgetsBinding`来监听键盘弹起和收起事件,同时使用`SingleChildScrollView`来为布局进行滚动以适应键盘的高度。 要实现键盘弹起布局,可以按照以下步骤进行: 1. 导入必要的包: ```dart import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; ``` 2. 创建一个`StatefulWidget`,该组件将包含你的布局: ```dart class MyLayout extends StatefulWidget { @override _MyLayoutState createState() => _MyLayoutState(); } class _MyLayoutState extends State<MyLayout> { // 声明一个控制器来获取文本输入框的焦点 final FocusNode _focusNode = FocusNode(); // 监听键盘状态 @override void initState() { super.initState(); // 在布局构建完成后开始监听键盘事件 SchedulerBinding.instance.addPostFrameCallback((_) { _focusNode.addListener(() { if (_focusNode.hasFocus) { // 获取焦点时,键盘弹起 _scrollToBottom(); } }); }); } // 滚动到底部 void _scrollToBottom() { SchedulerBinding.instance.addPostFrameCallback((_) { Scrollable.ensureVisible( _focusNode.currentContext!, duration: const Duration(milliseconds: 300), ); }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Flutter键盘弹起布局'), ), body: SingleChildScrollView( child: Column( children: <Widget>[ // your content here TextFormField( focusNode: _focusNode, // 将焦点设置给文本输入框 decoration: InputDecoration( labelText: '文本输入框', ), ), // more widgets... ], ), ), ); } } ``` 3. 在Flutter应用的入口处使用该布局: ```dart void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: MyLayout(), ); } } ``` 通过以上步骤,可以实现一个监听键盘弹起的布局。当文本输入框获得焦点时,布局可以自动滚动到底部以适应键盘的高度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值