如何在颤动中的页面加载时在Listview上应用自动滚动

2024-05-03

我想对这个 ListTile 应用自动滚动,

  Container(
                      height: 70,
                      width: double.maxFinite,
                      child: ListView.builder(
                        controller: _controller,
                        key: itemKey,
                        itemCount: 10,
                        itemBuilder: (BuildContext context, int index) {
                          return ListTile(
                            title: Text('demo ${index + 1}'),
                          );
                        },
                      ),
                    ),

我声明了这个

  final itemKey = GlobalKey();
  final _controller = ScrollController();

我把它放在小部件构建之后......

  if (_controller.hasClients) {
      _controller.animateTo(_controller.position.maxScrollExtent,
          duration: const Duration(milliseconds: 500), curve: Curves.easeInOut);
    }

您可以使用以下命令在构建第一帧后对列表进行动画处理addPostFrameCallback

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
      if (_controller.hasClients) {
        _controller.animateTo(_controller.position.maxScrollExtent,
            duration: const Duration(milliseconds: 500),
            curve: Curves.easeInOut);
      }
    });
  }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在颤动中的页面加载时在Listview上应用自动滚动 的相关文章

随机推荐