flutter列表无法滚动到底部_Flutter 列表滑动到顶部浮动按钮实现

本文展示了如何在 Flutter 中使用 ScrollController 实现列表滚动到底部时显示回到顶部的浮动按钮。当用户滚动距离超过800像素时,显示浮动按钮,点击按钮则平滑滚动回顶部。
摘要由CSDN通过智能技术生成

import 'package:flutter/material.dart';

class ScrollControllerDemoPage extends StatefulWidget {

@override

_ScrollControllerDemoPageState createState() =>

_ScrollControllerDemoPageState();

}

class _ScrollControllerDemoPageState extends State {

var _scrollController = ScrollController();

var _showBackTop = false;

@override

void initState() {

super.initState();

// 对 scrollController 进行监听

_scrollController.addListener(() {

// _scrollController.position.pixels 获取当前滚动部件滚动的距离

// 当滚动距离大于 800 之后,显示回到顶部按钮

setState(() => _showBackTop = _scrollController.position.pixels >= 800);

});

}

@override

void dispose() {

// 记得销毁对象

_scrollController.dispose();

super.dispose();

}

@override

Widget build(BuildContext context) {

return Scaffold(

appBar: AppBar(

title: Text('ScrollController Demo'),

),

body: ListView(

controller: _scrollController,

children: List.generate(

20,

(index) => Container(

height: 100.0,

alignment: Alignment.center,

child: Text(

'Item ${index + 1}',

),

)),

),

floatingActionButton: _showBackTop // 当需要显示的时候展示按钮,不需要的时候隐藏,设置 null

? FloatingActionButton(

onPressed: () {

// scrollController 通过 animateTo 方法滚动到某个具体高度

// duration 表示动画的时长,curve 表示动画的运行方式,flutter 在 Curves 提供了许多方式

_scrollController.animateTo(0.0,

duration: Duration(milliseconds: 500),

curve: Curves.decelerate);

},

child: Icon(Icons.vertical_align_top),

)

: null,

);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值