Вложенный ScrollView внутри виджета «Сдвижная панель»

9

У меня есть виджет панели, который можно перетаскивать вертикально вниз и вниз. В этом виджете панели ListViewесть прокручиваемый элемент .

Я пытаюсь добиться того, чтобы панель перетаскивала за открытие и закрытие без вмешательства вложенного списка. Как только панель открыта, просмотр списка становится прокручиваемым, и если просмотр списка прокручивается вниз, когда он уже наверху, панель обрабатывает жест и закрывается.

Вот так:

введите описание изображения здесь

Я пытался включить / отключить физику прокрутки в ListView на основе позиции Panel, но оказалось, что это невозможно.

Любые идеи ? :)

Тео Чемпион
источник
Вы пробовали решение, которое я вам дал? Я надеюсь, что это помогает.
Пабло Баррера
@PabloBarrera Закончился, переписывая поведение в DraggableScrollableSheetсебе, но я приму ваш ответ;)
Théo Champion

Ответы:

5

Вы можете достичь этого с DraggableScrollableSheet.

Вот краткий пример того, как вы можете его использовать:

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: Stack(
      children: <Widget>[
        Center(child: Text('Some content')),
        DraggableScrollableSheet(
          minChildSize: 0.2,
          initialChildSize: 0.2,
          builder: (context, scrollController) => Container(
            color: Colors.lightBlueAccent,
            child: ListView.builder(
              controller: scrollController,
              itemCount: 20,
              itemBuilder: (context, index) => SizedBox(
                height: 200,
                child: Text('Item $index'),
              ),
            ),
          ),
        ),
      ],
    ),
  );
}
Пабло Баррера
источник