Ошибка SingleChildScrollView с Column и ListView

У меня есть виджет SingleChildScrollView, который содержит дочерний столбец. Дочерний столбец содержит два пользовательских виджета. Первый настраиваемый виджет — это виджет карусельного слайдера. Второй настраиваемый виджет — это расширенный виджет, который содержит виджет SmartRefresher, содержащий ListView.

       SingleChildScrollView(
        child: Column(
          children: [
            CarouselSlider(...),
            Expanded(
              child: SmartRefresher(
                child: ListView(...),
              ),
            )
          ],
        ),
      ),

Причина, по которой я использую SingleChildScrollViewзаключается в том, что я хотел бы, чтобы ползунок карусели прокручивался вместе с представлением списка, когда пользователь начинает прокручивать представление списка, но я не хочу, чтобы CarouselSliderбыть частью самого списка.

Когда я пытаюсь запустить код, я получаю следующую ошибку:

Когда возникло исключение, обрабатывался следующий RenderObject: RenderFlex#783cc relayoutBoundary=up17 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATERenderObject: RenderFlex#783cc relayoutBoundary=up17 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE требует компоновки parentData: (можно использовать размер) ограничения: BoxConstraints(0.0<=w<=392.7, 0.0<=h<=Infinity)size: MISSINGdirection: verticalmainAxisAlignment: startmainAxisSize: maxcrossAxisAlignment: centerverticalDirection: downchild 1: RenderPadding#8076a ПОТРЕБНОСТИ-РАЗМЕТКА ПОТРЕБНОСТИ-КРАСКА ПОТРЕБНОСТИ-КОМПОЗИЦИЯ-БИТЫ-ОБНОВЛЕНИЕ требует компоновки parentData: offset=Offset(0.0, 0.0); гибкий = ноль; fit=null ограничения: ОТСУТСТВУЕТ

Вот дерево виджетов:

1 ответ

SingleChildScrollViewобеспечивают бесконечную высоту и Expandedпринимая бесконечную высоту, вызывающую проблему

вы можете просто сделать это,

       SingleChildScrollView(
        child: Column(
          children: [
            CarouselSlider(
              items: [
                ...List.generate(
                    4,
                    (index) => Container(
                          color:
                              index.isEven ? Colors.amber : Colors.deepPurple,
                        ))
              ],
              options: CarouselOptions(),
            ),
            ...List.generate(
              44,
              (index) => Container(
                height: 100,
                color: index.isEven ? Colors.green : Colors.pink,
              ),
            ),
          ],
        ),
      ),
Другие вопросы по тегам