import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('监听'),
),
body: ScrollNotificationTestRoute(),
),
);
}
}
class ScrollNotificationTestRoute extends StatefulWidget {
@override
_ScrollNotificationTestRouteState createState() => _ScrollNotificationTestRouteState();
}
class _ScrollNotificationTestRouteState extends State<ScrollNotificationTestRoute> {
String _progress = "0%";
@override
Widget build(BuildContext context) {
// 进度条
return Scrollbar(
child: NotificationListener<ScrollNotification>(
onNotification: (ScrollNotification notification) {
double progress = notification.metrics.pixels / notification.metrics.maxScrollExtent;
// 重新构建
setState(() {
_progress = "${(progress * 100).toInt()}%";
});
print("BottomEdge: ${notification.metrics.extentAfter == 0}");
},
child: Stack(
alignment: Alignment.center,
children: <Widget>[
ListView.builder(
itemCount: 100,
itemExtent: 50.0,
itemBuilder: (context, index) {
return ListTile(title: Text('$index'),);
}
),
CircleAvatar(
radius: 30.0,
child: Text(_progress),
backgroundColor: Colors.black54,
)
],
)
)
);
}
}
Flutter-滚动监听
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 错误做法 使用render2的listen方法进行监听,之前这样做,问题是,监听事件触发后,在其他组件中触发win...
- 实现一个需求,当页面跳转到另一个页面时,使用react-router跳转回原页面,滚动条需要停留在原有位置。滚动条...
- 滚动完毕点击确定按钮才有响应,如果UIPickerView正在拖拽或者是正在减速,点击确认按钮不让响应事件 对象方...