У меня есть ListView, в верхней части которого у меня есть карта, я хочу, чтобы карта прокручивалась вне поля зрения при прокрутке ListView, но я также хочу, чтобы пользователь мог взаимодействовать с картой. Поэтому прокрутка должна происходить только тогда, когда пользователь прокручивает другие виджеты ListView, а не когда он прокручивает карту, тогда я хочу, чтобы жест был применен непосредственно к карте.
Однако в настоящее время, когда пользователь прокручивает карту, он прокручивает весь ListView.
Я попробовал другое предположение, что я наткнулся здесь
Как в Flutter дочерний виджет может предотвратить прокрутку своего прокручиваемого родителя?
Я добавил GestureDetector
, как предложено в ответе на пост выше, оборачивая контейнер карты в приведенном ниже примере, однако это просто заблокировало прокрутку как ListView, так и карты при прокрутке на карте. Ссылка на видео https://imgur.com/SeCRzUC
Вот виджет, который возвращается моим методом сборки. Этот код зависит от плагина google_maps_flutter
.
Container(
height: MediaQuery.of(context).size.height,
child:
ListView.builder(
itemCount: 12 + 1,
itemBuilder: (context, index) {
if (index == 0) return GestureDetector(
onVerticalDragUpdate: (_){},
child: Container(
height: MediaQuery.of(context).size.height / 2,
child: GoogleMap(initialCameraPosition: initalPosition),
),
);
else return ListTile(title: Text("$index"),);
}
)
),
Я надеялся, что карта будет отображать жесты, но это не так, список, в котором он содержится, захватывает все. Кто-нибудь может подсказать, как можно заставить все жесты для этого элемента в списке передаваться непосредственно на карту, и при этом прокручивать список при прокрутке других элементов в списке?