#flutter #dart
#флаттер #dart
Вопрос:
У меня есть два списка. Один из них является оболочкой всех виджетов в представлении, второй — его дочерний элемент. Вот код:
ListView(
scrollDirection: Axis.vertical,
physics: AlwaysScrollableScrollPhysics(),
children: [
Container(
................
),
Container(
................
),
ListView.builder(
itemBuilder: (context, index) {
return Expanded(child: Column(children: [
Divider(
color: Colors.black12,
height: 20,
thickness: 1,
indent: 20,
endIndent: 0,
),
Row(children: [
Image.network(
"http://openweathermap.org/img/wn/10d@2x.png"),
Text(Utils.days[index 1],
style: GoogleFonts.roboto(
fontSize: 16, color: Colors.white))
]),
]));
},
itemCount: 5,
scrollDirection: Axis.vertical,
)
]);
Видны два контейнера. Я не вижу элементы во втором представлении списка. В консоли нет никакой ошибки. Я понятия не имею, почему это происходит.
Комментарии:
1. не вкладывайте два или более
ListView
s — вместо этого используйтеCustomScrollView
2. добавить
shrinkWrap: true
ниже второй список
Ответ №1:
Я исправил это, добавив shrinkWrap: true и physics: NeverScrollableScrollPhysics() во вложенный ListView
Ответ №2:
Я надеюсь, что этот код будет работать для вас.
return Scaffold(
body: Container(
child: SingleChildScrollView(
child: Column(mainAxisSize: MainAxisSize.min,
// scrollDirection: Axis.vertical,
// physics: AlwaysScrollableScrollPhysics(),
children: [
Container(
child: Text("one"),
),
Container(
child: Text("two"),
),
Container(
height: MediaQuery.of(context).size.height / 2,
child: ListView.builder(
itemBuilder: (context, index) {
return Column(children: [
Divider(
color: Colors.black12,
height: 20,
thickness: 1,
indent: 20,
endIndent: 0,
),
Row(children: [
Image.network(
"http://openweathermap.org/img/wn/10d@2x.png"),
Text(index.toString(),
style: GoogleFonts.roboto(
fontSize: 16, color: Colors.white))
]),
]);
},
itemCount: 5,
scrollDirection: Axis.vertical,
),
)
]),
)),
);