#flutter #listview #flutter-layout
#flutter #listview #flutter-макет
Вопрос:
Я пытаюсь добавить GestureDetector в свой виджет ListView, который содержит изображения, но, похоже, он не работает. Аналогичный вопрос задавался об этом раньше, но это тоже не помогло.
Вот мой код:
ListView.builder(
scrollDirection: Axis.horizontal,
itemBuilder: (BuildContext ctx, int index) {
return Container(
width: 160,
child: Card(
child: Wrap(
children: <Widget>[
GestureDetector( onTap: () => Print_on_layout(index),
child: Image.network(a[index], fit: BoxFit.fill,)
)
],
),
),
);
},
itemCount: a.length,
),
Комментарии:
1. Вы получаете сообщение об ошибке? Что вы имеете в виду — это не работает?
Ответ №1:
Я полагаю, это как-то связано с виджетом переноса, который может мешать пространству, в котором может быть обнаружено касание. Попробуйте удалить его. Если это не сработает, пожалуйста, сообщите нам, если вы получите сообщение об ошибке.
Ответ №2:
Используйте gesturedetector в качестве родительского контейнера, которого нет на изображении. как и в списке, вы возвращаете только один виджет, поэтому вам следует использовать контейнер с детектором жестов. Попробуйте этот код:
ListView.builder(
scrollDirection: Axis.horizontal,
itemBuilder: (BuildContext ctx, int index) {
return
GestureDetector(onTap: () => Print_on_layout(index),
child: Container(
width: 160,
child: Card(
child: Wrap(
children: <Widget>[
Image.network(a[index], fit: BoxFit.fill,)
],
),
),
),
);
},
itemCount: a.length,
),