首页 > 解决方案 > 如何在其初始值颤动中将滚动条设置为最大值

问题描述

我正在构建一个聊天应用程序。我希望每当聊天类打开时,它最初都会滚动到最大。我尝试了下面的代码,但它是错误的

  void initState() {
    super.initState();
    scrollController = ScrollController();
    scrollController.animateTo(scrollController.position.maxScrollExtent,
        duration: Duration(milliseconds: 10), curve: Curves.easeOut);
  }

标签: flutterdart

解决方案


仅在构建过程完成时才使用addPostFrameCallbackfromSchedulerBinding强制ScrollController移动,以确保它具有要移动的初始位置:

  1. 进口Scheduler

    import 'package:flutter/scheduler.dart';
    
  2. 修改你的initState()

    void initState() {
      super.initState();
      scrollController = ScrollController();
      SchedulerBinding.instance.addPostFrameCallback((_) => scrollController.animateTo(scrollController.position.maxScrollExtent, duration: Duration(milliseconds: 10), curve: Curves.easeOut));
    }
    

推荐阅读