Flutter with Dart中的可滚动列表视图



有人能解释一下我应该在哪里定义滚动控制器吗?我有聊天列表视图,它是一个可滚动视图的主体。我希望能够从MainView控制滚动行为,但不知道如何将控制器向下传递到_ChatListView。有什么想法吗?

mainview.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,
);
}
}

最新更新