Флаттер: как можно составлять списки, не имея собственного свитка? - PullRequest
0 голосов
/ 15 февраля 2020

В моем приложении Flutter у меня есть ListView внутри ListView. Пожалуйста, проверьте ниже

 ListView(
   children: < Widget > [
    //Stack Widget
    //More Widgets
    Container(
     height: MediaQuery.of(context).size.height,
     child: ListView.builder(
      physics: NeverScrollableScrollPhysics(), //Disable Scrolling
      itemCount: 100,
      itemBuilder: (BuildContext context, int index) {
       return Container(
        margin: EdgeInsets.only(bottom: 10, left: 10, right: 10),
        child: _createAdvertisement(),
       );
      },
     ),
    ),
   ],
  );

В секунду 100 элементов ListView, и я использовал physics: NeverScrollableScrollPhysics(), чтобы остановить прокрутку. Я не хочу, чтобы это прокручивалось, потому что верхняя ListView может прокручивать всю страницу, поэтому я хочу, чтобы содержимое второй ListView было добавлено внизу страницы. Пользователь может прокрутить всю страницу вверх, чтобы увидеть содержимое ниже.

Однако мой прием использования physics: NeverScrollableScrollPhysics() не сработал, вместо этого он ограничил количество элементов, которые собирается генерировать ListView. В результате теперь у меня менее 10 элементов в этом списке, а не 100.

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 16 февраля 2020

Вы можете добавить «shrinkWrap: true» и удалить «height: MediaQuery.of (context) .size.height,".

ListView(
  children: <Widget>[
    Text("1"),
    Text("2"),
    Container(
      child: ListView.builder(
        shrinkWrap: true,  // add this line.
        physics: NeverScrollableScrollPhysics(), //Disable Scrolling
        itemCount: 100,
        itemBuilder: (BuildContext context, int index) {
          return Container(
            margin: EdgeInsets.only(bottom: 10, left: 10, right: 10),
            child: Text("test"),
          );
        },
      ),
    ),
    Text("3"),
  ],
),

top image bottom image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...