Flutter实现中间滑动,底部固定

简介:flutter搭建组件写界面时,经常会遇到界面中间滑动,底部固定的需求,这里与AppBar和BottomNavigationBar区分开来,两者的功能和适用情况是不一样的,BottomNavigationBar是适用于底部导航栏的。下图就是实现的类似界面效果:(中间信息滑动,底部删除按钮固定)

在这里插入图片描述
flutter实现代码:

body: MediaQuery(
            data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
            child: Padding(
                padding: EdgeInsets.fromLTRB(
                    _windowPadding.left,
                    0,
                    _windowPadding.right,
                    _windowPadding.bottom),
                child:Flex(
                    direction: Axis.vertical,
                    children: <Widget>[
                      _getStatusBar(),
                      getTitleBar(),
                      //最主要的代码块Expanded这块
                      Expanded(
                        child: Column(
                          children: <Widget>[
                            Flexible(
                              child: SingleChildScrollView(
                                child: Column(
                                  mainAxisSize: MainAxisSize.min,
                                  children: <Widget>[
                                  //头像---添加信息部分
                                    _getApplyTo(),
                                    _getStyle(),
                                    _getSignInfo(),
                                  ],
                                ),
                              ),
                            ),
                            Container(
                                height: 52.0,
                                width: 375.0,
                                decoration: BoxDecoration(
                                    color: Colors.white
                                ),
                                margin: EdgeInsets.only(top: 20.0, bottom: 64.0),
                                child: Container(
                                  alignment: Alignment.center,
                                  child: Label.textBtn(
                                    strings.delete,
                                    fontSize: 17.0,
                                    onTab: () => print("你点击了删除哈~"),
                                  ),
                                )
                            )
                          ],
                        );
                      )
                      //最主要的代码块Expanded这块
                    ]
                )
            )
        )

组件结构:
在这里插入图片描述
详解:为什么想要写这篇blog呢?因为对于新手而言,Flexible组件可能并不熟悉,在Column中包括两个子组件SingChildScrollView 和Container,我们希望SingChildScrollView可以在中间滑动,Container固定在底部,但是会引起溢出(界面效果就是底部出现像黄黑色栏杆的标识)问题,所以在SingChildScrollView 外嵌套了一层Flexible。
What’s Flexible ?
一个来控制[Row],[Column]或[Flex]的子代的弯曲方式的控件。具体可以看Dart的源码解释,这个真的很棒,要学会看!
希望能帮助到大家,欢迎大家发表自己的言论哦!❤

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值