ScrollController 不滚动到内容底部

Bri*_*den 1 flutter flutter-layout

使用ScrollControllerand TextFormField FocusNodetoscrollController.animateTo scrollController.position.maxSCrollExtent当键盘显示 to 以进入TextFormField我的“提交”按钮上方时,我无法在视图底部显示我的“提交”按钮。

注意我已经尝试将resizeToAvoidBottomInsetset 设置为 true 和 false。

我的SingleChildScrollView代码片段

  ScrollConfiguration(
          behavior: ScrollBehaviorHideSplash(),
          child: SingleChildScrollView(
            controller: _scrollController,
            child: Column(
              mainAxisAlignment: MainAxisAlignment.start,
              children: <Widget>[...widgets
Run Code Online (Sandbox Code Playgroud)

我的 FocusNode 聚焦功能:

  void _scrollToBottom() {
    print('scrollToBottom');
    _scrollController.animateTo(
      _scrollController.position.maxScrollExtent,
      curve: Curves.easeOut,
      duration: const Duration(milliseconds: 750),
    );
  }
Run Code Online (Sandbox Code Playgroud)

我也试过 _scrollController.position.maxScrollExtent + 400.0以防万一。

内容显示具有resizeToAvoidBottomInset: true 在此处输入图片说明

我希望 ScrollController 滚动到哪里,但目前必须手动滚动才能看到按钮: 在此处输入图片说明

小智 5

尝试这个:

Timer(Duration(milliseconds: 100), () {
    _scrollController.animateTo(
      _scrollController.position.maxScrollExtent,
      curve: Curves.easeOut,
      duration: const Duration(milliseconds: 750),
    );
});
Run Code Online (Sandbox Code Playgroud)

有点hacky但是在滚动动画之前添加Timer解决了我的问题,我猜listview需要一些时间来添加新项目。