【问题标题】:Scrollable Listview in Flutter with Dart使用 Dart 的 Flutter 中的可滚动列表视图
【发布时间】:2018-12-23 07:17:18
【问题描述】:

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

ma​​inview.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()
        );
    }
}

chatlistview.dart

class ChatListView extends StatefulWidget {
    @override
    _ChatListView createState() => _ChatListView();
}

class _ChatListView extends State< ChatListView > {
    Widget build(BuildContext context) {
        return ListView.builder(
          controller: scrollController,
          );
    }
}

【问题讨论】:

    标签: dart flutter mobile-development


    【解决方案1】:

    添加构造函数并将控制器作为参数传递

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

    【讨论】:

    • 完美,widget 对象终于是我要找的了!谢谢
    猜你喜欢
    • 1970-01-01
    • 2020-07-16
    • 2020-11-05
    • 2021-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多