Flutter ListView 构建器滚动 Controller 监听器未在 ListView 内触发?

标签 flutter listview dart flutter-layout

我在另一个 ListView 中有一个 ListView 构建器小部件。当滚动位置到达其末尾时,内部 ListView 监听器不会触发。

initState() {
   super.initState();

  _scrollController.addListener(() {
  if (_scrollController.position.maxScrollExtent ==
      _scrollController.position.pixels) {function();}
}

Container(
 child: Listview(
  children: <Widget>[
    Container(),
    ListView.builder(
      controller: _scrollController,
      physics: NeverScrollableScrollPhysics(),
      shrinkWrap: true,
      itemCount: list.length,
      itemBuilder: (BuildContext context, int index) {
         return Container();
      },
   ),
  ]
 )
)

最佳答案

ListView 必须滚动,否则将无法工作。您不仅必须删除 NeverScrollableScrollPhysics(),还要将该 ListView 添加到某个容器中,并将其高度设置为小于 ListView 的整体高度。然后listView开始滚动,函数就会被触发

  ScrollController _scrollController = ScrollController();
  List<int> list = [1, 2, 3, 4, 5];
  initState() {
    super.initState();

    _scrollController.addListener(() {
      if (_scrollController.position.maxScrollExtent ==
          _scrollController.position.pixels) {
        print('firing');
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: ControlBar(
          title: Text('Home'),
        ),
      ),
      body: ListView(
        children: <Widget>[
          Container(
            height: 150,
            child: ListView.builder(
              controller: _scrollController,
              shrinkWrap: true,
              itemCount: list.length,
              itemBuilder: (BuildContext context, int index) {
                return ListTile(title: Text(list[index].toString()));
              },
            ),
          ),
        ],
      ),
    );
  }

关于Flutter ListView 构建器滚动 Controller 监听器未在 ListView 内触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62594443/

相关文章:

flutter - 如何在 Flutter Widget(Center Widget)的子属性中使用条件语句

firebase - 如何在一个流中合并多个流

android - 当 Flutter 抽屉里面有 Dismissible 时,如何让它关闭?

android - 将渐变应用于 android 中 ListView 中的行

android - 为什么ImagePicker无法选取多张图片

dart - 在 Dart 中, 'const' 参数有什么区别?

flutter - 如何将用户发送出应用程序 - 到特定目录路径

android - 无法访问类 'com.google.common.util.concurrent.ListenableFuture' 。检查模块类路径是否缺少或冲突的依赖项

android - 在 ListView 中实现以下弹出菜单的想法

android - ListView 中的 StackOverflow - Android