Flutter NotificationListener 监听列表的滚动
2023-09-14 08:58:44 时间
import 'package:flutter/material.dart';
import 'package:flutter_imagenetwork/flutter_imagenetwork.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
List<String> images =
List.generate(3, (i) => 'https://picsum.photos/id/$i/800/800');
ScrollController _scrollController = ScrollController();
@override
Widget build(BuildContext context) {
return Scaffold(
body: NotificationListener(
onNotification: (Notification notification) {
if (notification is ScrollStartNotification) {
print('滚动开始');
}
if(notification is ScrollUpdateNotification){
print('滚动中');
}
if (notification is ScrollEndNotification) {
print('停止滚动');
if (_scrollController.position.extentAfter == 0) {
print('滚动到底部');
}
if (_scrollController.position.extentBefore == 0) {
print('滚动到头部');
}
}
},
child: ListView.builder(
controller: _scrollController,
itemCount: images.length,
itemBuilder: (context, index) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: AjanuwImage(
image: AjanuwNetworkImage(images[index]),
loadingBuilder: AjanuwImage.defaultLoadingBuilder,
errorBuilder: AjanuwImage.defaultErrorBuilder,
gaplessPlayback: true,
),
);
},
),
),
);
}
}
相关文章
- python列表转成字符串,同时自定义分隔符[通俗易懂]
- 【说站】python如何过滤列表中的唯一值
- ExcelVBA-FSO对象模型-Files属性(提取文件列表)
- vue及原生html实现列表无缝上下滚动,以及单行滚动
- 7b2美化-列表文章上浮效果
- 我服了,整理了 40 余种图片优化工具,论图片压缩,直接甩给他这个列表
- 【Flutter】ListView 列表高级功能 ( RefreshIndicator 下拉刷新组件 )
- 【Flutter】屏幕像素适配方案 ( flutter_screenutil 插件 )
- Python list列表详解
- 操作Linux 列表操作:值得掌握的技巧(linux列表)
- Oracle 兼容性支持清单汇总(oracle 兼容性列表)
- Redis优化点赞文章列表性能(文章列表点赞redis)
- 列表内容的选择
- python列表操作使用示例分享
- ajax初级教程之获取博文列表