Как поместить элементы друг под другом с помощью ListView?

Если вы не против использования Akka, я бы посмотрел на потоки Akka; особенно Alpakka , чтобы сделать это. Нет необходимости изобретать велосипед, если вам это не нужно.

При этом код имеет следующие проблемы:

  1. Проверка существования в кеше не поможет, если записи в Cassandra обновляются. Это поможет только в том случае, если они отсутствуют в вашем кеше
  2. . Посмотрите на использование блокировки записи ретентата чтения , если вы считаете, что большую часть времени ваш кеш будет иметь текущий ток записей. Это поможет вам в споре, если у вас есть несколько потоков, называя ваше зеркало.

Опять же, я очень рекомендую вам взглянуть на Akka Streams с Alpakka, потому что вы можете делать то, что хотите, с помощью этого инструмента, написать кучу кода самостоятельно.

0
задан Hotgeart 19 January 2019 в 14:28
поделиться

3 ответа

Вы можете добавить верхний и нижний foo и bar как первый и последний элементы списка. У ListView будет list.length + 2 предметов.

  body: Column(children: [
    Text('foo'),
    Expanded(
      child: ListView.builder(
        itemCount: list.length + 2,
        itemBuilder: (context, index) {
          if (index == 0)
            return Text("foo");
          else if (index < list.length + 1)
            return Text("$index");
          else
            return Text('bar');
        },
      ),
    ),
  ]),
0
ответ дан chemamolins 19 January 2019 в 14:28
поделиться

Вы должны использовать CustomScrollView

CustomScrollView(
    slivers: <Widget>[
      SliverToBoxAdapter(
        child: Text("Text"),
      ),
      SliverList(
        delegate: SliverChildListDelegate( [
              Container(
                height: 200.0,
                decoration: BoxDecoration(color: Colors.orange),
              ),
              Container(
                height: 400.0,
                decoration: BoxDecoration(color: Colors.pink),
              ),
              Container(
                height: 500.0,
                decoration: BoxDecoration(color: Colors.blue),
              )
            ]),
      ),
      SliverToBoxAdapter(
        child: Text("Text"),
      ),
    ],
  ) 

. Обратите внимание, что вы можете использовать SliverChildListDelegate или SliverChildBuilderDelegate

0
ответ дан Renan C. Araujo 19 January 2019 в 14:28
поделиться

Попробуйте это

body: Column( children: [ Text('foo'), Expanded( child: Container( child: ListView.builder( shrinkWrap: true, itemBuilder: ......., itemCount: ....., ), ), ), Text('bar') ] ) ,

Этот код работал для меня.

0
ответ дан Sahan Sandeepa Nagodavithana 19 January 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: