【自学Flutter】23 滚动监听和 NotificationListener的使用
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: HomePage(),
);
}
}
class HomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('滚动监听示例'),
),
body: Center(
child: NotificationListener<ScrollNotification>(
onNotification: (ScrollNotification notification) {
if (notification is ScrollStartNotification) {
print('滚动开始');
} else if (notification is ScrollUpdateNotification) {
print('滚动中: 新位置 = ${notification.metrics.pixels}');
} else if (notification is ScrollEndNotification) {
print('滚动结束: 新位置 = ${notification.metrics.pixels}');
}
// 返回false表示不阻止此通知继续传递给其他监听器
return false;
},
child: ListView.builder(
itemCount: 100,
itemBuilder: (context, index) {
return ListTile(title: Text('项目 $index'));
},
),
),
),
);
}
}
这段代码创建了一个包含NotificationListener
的ListView
,用于监听滚动事件。当用户开始、更新或结束滚动时,会打印相应的消息。这是学习如何在Flutter中处理滚动事件的一个很好的例子。
评论已关闭