Как смоделировать поведение spaceBetween в listView?

У меня есть столбец таких элементов:

      Column(
  children: [
    ...items,
    Spacer(),
    Footer(),
  ],
)

Однакоitemsсписок может быть динамическим, поэтому необходимо использовать вместо . Единственная проблема в том, что мойFooterбыл разделен с помощьюSpacerВиджет выдаст ошибку, если он используется в ListView.

Что я могу использовать, чтобы добиться эффектаColumnмоемуListViewкогда всего несколько предметов не заполняют весь экран?

3 ответа

Вы можете использовать SizeBox(heigth:ваш рост) вместо Spacer();

Эта проблема у меня часто возникала, когда я еще учился.

Я думаю, у вас та же проблема,

Шаг 1. Вы не должны использовать его в качестве родительского.

Шаг 2: Используйте виджет внутри файла .

Шаг 3: ВнутриExpandedиспользуйте другой и поместите теitems.

Например:

      Column(
  children: [
    Expanded(
      child: Column(
       children: [
         ...items,
      ],
    ),
    Footer(),
  ],
)

Вы можете настроить поведение прокрутки для этого второгоColumnДаваяSingleChildScrollViewили используйте любойListView

Я нашел это решение:

      CustomScrollView(
  slivers: <Widget>[
    SliverList(
      delegate: SliverChildListDelegate(items),
    ),
    SliverFillRemaining(
      hasScrollBody: false,
      child: Footer(),
    ),
  ],
),
Другие вопросы по тегам