flutter 滚动隐藏悬浮按钮

flutter 滚动隐藏悬浮按钮
摘要由CSDN通过智能技术生成

在这里插入图片描述
实现思路,当开始滚动的时候,执行动画让中间的悬浮按钮向右移动。当滚动结束的时候复位动画

监听滚动的方法有两种
第一种 NotificationListener 在widget树中,子widget滚动时会向上发送notification,通过NotificationListener可以监控到该notification。NotificationListener也是一个widget,可以将被监控的widget放入其child内。
NotificationListener

const NotificationListener({
   
    Key key,
    @required this.child,  被监控的子widget树
    this.onNotification,  监控到notification后的回调方法。
  }) 

onNotification(ScrollNotification notification) , 此方法需要一个返回值,表示是否拦截住notification,如果是true,那么notifcation到此为止;如果是false,那么notification会继续向更外层widget传递。参数ScrollNotification包含了监听到的信息。
ScrollNotification

ScrollNotification({
   
    @required this.metrics,   所有信息都在这里存储 ScrollMetrics
    @required this.context,
  });

第二种是通过ScrollController来监听
ScrollController 常用方法

addListener 滑动监听方法,在initState中监听
_scrollController.position.pixels 滑动距离
_scrollController.offset 滚动的偏移量
_scrollController.position.maxScrollExtent 最大可滑动距离,滑动组件内容长度
-_scrollController.position.minScrollExtent 最小可滑动距离,0
_scrollController.position.viewportDimension 滑动视图所占长度
_scrollController.dispose() 销毁监听,在dispose方法中调用
_scrollController.jumpTo 控制滑动组件的滑动距离,无动画
_scrollController.animateTo(10); 控制滑动组件的滑动距离,有动画
_scrollController.position.jumpTo 同上
_scrollController.position.animateTo 同上

  controller.addListener((){
   
      print(controller......)
   });

下面我们开始实现我们的效果

第一步
我们使用Scaffold floatingActionButton 来添加我们widget ,配合 floatingActionButtonLocation 设置下位置,

Scaffold(
     appBar: PreferredSize(
       child: _getAppBar(),
       preferredSiz
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值