[ScrollController侦听器在Android中拉起ListView时不会触发

问题描述 投票:0回答:1

我上面有一个ListView和一个Calendar。我的计划是根据ListView滚动状态使用Calendar。除了一个Android问题外,我设法解决了所有这些问题。

ScrollController _scrollController;

@override
  void initState() {
    super.initState();
    _scrollController = ScrollController();
    _scrollController.addListener(_handleScroll);
  }

@override
  void dispose() {
    _scrollController.removeListener(_handleScroll);
    _scrollController.dispose();
    super.dispose();
  }

void _handleScroll() {
    // Handle Scrolling here.
}

@override
Widget build(BuildContext context) {
  return SafeArea(
    child: child: Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: <Widget>[
        Calendar(),
        Expanded(
          child: ListView(
            controller: _scrollController,
            padding: EdgeInsets.only(bottom: 10),
            children: <Widget>[
              ListViewItem(),
              ListViewItem(),
              ...
            ],
          ),
        ),
      ],
    ),
  );
}

下图说明了问题!

enter image description here

如您所见,在用户没有向下滚动时拉出ListView似乎根本不会触发_handleScroll。我认为这是设计在Android上。任何解决方案或解决方法将不胜感激。

flutter flutter-layout
1个回答
0
投票

您必须将CustomScrollView与Sliver一起使用,如此处所述:https://flutter.dev/docs/cookbook/lists/floating-app-bar

© www.soinside.com 2019 - 2024. All rights reserved.