dart - Flutter 中的可滚动列表视图与 Dart
问题描述
有人可以解释一下我应该在哪里定义滚动控制器吗?我有聊天列表视图,它是可滚动视图的主体。我希望能够控制滚动行为,MainView
但不知道如何将控制器向下传递到_ChatListView
. 有任何想法吗?
主视图.dart
class MainView extends StatelessWidget {
...
// is this the correct place?
final ScrollController scrollController = ScrollController();
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new ChatListView()
);
}
}
聊天列表视图.dart
class ChatListView extends StatefulWidget {
@override
_ChatListView createState() => _ChatListView();
}
class _ChatListView extends State< ChatListView > {
Widget build(BuildContext context) {
return ListView.builder(
controller: scrollController,
);
}
}
解决方案
添加构造函数并将控制器作为参数传递
class MainView extends StatelessWidget {
...
// is this the correct place?
final ScrollController scrollController = ScrollController();
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new ChatListView(scrollController: scrollController)
);
}
}
class ChatListView extends StatefulWidget {
ChatListView({@required this.scrollController});
final ScrollController scrollController;
@override
_ChatListView createState() => _ChatListView();
}
class _ChatListView extends State< ChatListView > {
Widget build(BuildContext context) {
return ListView.builder(
controller: widget.scrollController,
);
}
}
推荐阅读
- javascript - ReactJs - 输入组件从函数返回时表现异常
- java - Java Optional.map() 错误:“无法推断map(Function ) 的类型参数”
- ionic4 - 带有数值的 Ionic 4 *ngFor
- qt - 我可以在系统托盘中运行我的 Qt 程序 (C++),但是如何从任务栏中删除它?
- python - 多线程、队列、GUI 和侦听器
- typescript - typescript 函数类型的最佳实践和区别
- node.js - 从 MQTT 获取数据到 Vue 应用实例
- java - 退货清单
从使用 Hql 查询的投影界面 - python - 如何在 PyQt5 中隐藏控制台(在程序中的某个点)?
- java - Sort .txt data in a special way in java