Перечень флаттера всегда прокручивается вниз, когда верно обратное - PullRequest
0 голосов
/ 23 октября 2019

Почему я использую реверс, это правда, это для получения сообщений извлечения из базы данных в реальном времени, отсортированных по времени. после этого новые сообщения в ToP и старые сообщения ложатся в просмотр списка. Все работает хорошо, это условие, которое я хотел. Но представление списка всегда прокручивается вниз, а не лежит сверху. Если пользователь заходит на страницу, он сначала увидит старые сообщения, а не новые. Вот мой ocde

return ListView.builder(
    controller: _scrollController,
    shrinkWrap: true,
    //physics: const AlwaysScrollableScrollPhysics(),
    itemCount: nots.length,
    reverse: true,
    itemBuilder: (context, index) {
      return Container(
        color: Colors.amber[50],
        child: Padding(
          padding: const EdgeInsets.all(0.0),
          child: Row(
            children: <Widget>[
              column(nots[index].title,nots[index].date,nots[index].body,nots[index].photourl),
              //column,
            ],
          ),
        ),
      );
    },
  );

Если я уберу реверс: True. тогда старые сообщения лежат сверху, а новые сообщения лежат внизу. Но в этом случае просмотр списка не прокручивается ко дну. Одним словом, когда я использую оба случая. Пользователи могут видеть только старые сообщения в первую очередь. Но я хочу видеть их новые сообщения в первую очередь. enter image description here

1 Ответ

0 голосов
/ 23 октября 2019

Вам нужно прокрутить список до конца в обоих случаях, потому что:

  • Если список перевернут, конец списка будет вершиной списка, который вы видите
  • Если список не перевернут, конец списка будет нижней частью списка, который вы видите

Таким образом, для обоих случаев вы можете сделать это внутри initState():

SchedulerBinding.instance.addPostFrameCallback((_) =>
        _scrollController.jumpTo(_scrollController.position.maxScrollExtent));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...