Flutter 分页滚动控制器ScrolPhysics

Flutter 分页滚动控制器ScrolPhysics,flutter,listview,scroll,Flutter,Listview,Scroll,尝试分页ListView。但在ListView中包含物理参数时,无法使用此通知(只需忽略它)。但是如果我删除物理参数,我的widjet visuali就不会滚动了 import 'package:flutter/material.dart'; import 'package:news_api_app/models/NewsModels/NewsModel.dart'; import 'BlogTile.dart'; class NewsListView extends StatefulWidg

尝试分页ListView。但在ListView中包含物理参数时,无法使用此通知(只需忽略它)。但是如果我删除物理参数,我的widjet visuali就不会滚动了

import 'package:flutter/material.dart';
import 'package:news_api_app/models/NewsModels/NewsModel.dart';
import 'BlogTile.dart';

class NewsListView extends StatefulWidget {
  final NewsModel newsModel;

  NewsListView({required this.newsModel});

  @override
  _NewsListViewState createState() => _NewsListViewState();
}

class _NewsListViewState extends State<NewsListView> {
  late ScrollController _controller;

  _scrollListener() {
    if (_controller.offset >= _controller.position.maxScrollExtent &&
        !_controller.position.outOfRange) {
      setState(() {
        print("reach the bottom");
      });
    }
    if (_controller.offset <= _controller.position.minScrollExtent &&
        !_controller.position.outOfRange) {
      setState(() {
        print("reach the top");
      });
    }
  }

  @override
  void initState() {
    _controller = ScrollController();
    _controller.addListener(_scrollListener);
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    var articles = widget.newsModel.getArticleList;
    return Container(
      child: SingleChildScrollView(
        child: Container(
          padding: EdgeInsets.symmetric(horizontal: 16),
          child: Column(
            children: [
              ///Blogs
              Container(
                padding: EdgeInsets.only(top: 16),
                child: Expanded(
                  child: NotificationListener<ScrollNotification>(
                    onNotification: (scrollNotification) {
                      if (scrollNotification is ScrollNotification) {
                        print("sd");
                      }
                      if (scrollNotification is ScrollStartNotification) {
                        print("Start");
                      } else if (scrollNotification
                          is ScrollUpdateNotification) {
                        print("Update");
                        ;
                      } else if (scrollNotification is ScrollEndNotification) {
                        print("End");
                      }
                      return false;
                    },
                    child: ListView.builder(
                      controller: _controller,
                      shrinkWrap: true,
                      scrollDirection: Axis.vertical,
                      physics: const ClampingScrollPhysics(),
                      itemCount: articles.length,
                      itemBuilder: (context, index) {
                        return BlogTile(
                          title: articles[index].title,
                          desc: articles[index].description,
                          imageUrl: articles[index].urlImage,
                          url: articles[index].url,
                        );
                      },
                    ),
                  ),
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
导入“包装:颤振/材料.省道”;
导入“包:news_api_app/models/NewsModels/NewsModel.dart”;
导入“BlogTile.dart”;
类NewsListView扩展了StatefulWidget{
最终新闻模型新闻模型;
NewsListView({required this.newsModel});
@凌驾
_NewsListViewState createState()=>\u NewsListViewState();
}
类_NewsListViewState扩展状态{
晚滚动控制器(u控制器),;
_scrollListener(){
如果(_controller.offset>=_controller.position.maxScrollExtent&&
!\u控制器。位置。超出范围){
设置状态(){
打印(“到达底部”);
});
}

如果(_controller.offset)我的滚动控制器不工作。我哪里出错了