我有ListView.builder里面可滾動Column的。但是里面的內容ListView.builder沒有滾動。
final List<String> entries = <String>[
'Item 1',
'Item 2',
'Item 3',
'Item 4',
'Item 5',
'Item 6',
'Item 7',
'Item 8',
'Item 9',
'Item 10',
'Item 11',
'Item 12',
'Item 13',
'Item 14',
'Item 15',
'Item 16',
'Item 17',
'Item 18',
'Item 19',
'Item 20',
];
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Column(
children: [
Text(
'Heading',
style: TextStyle(fontSize: 24),
),
ListView.builder(
shrinkWrap: true,
padding: const EdgeInsets.all(8),
itemCount: entries.length,
itemBuilder: (BuildContext context, int index) {
return Container(
height: 150,
width: 150,
decoration: BoxDecoration(
border: Border.all(width: 2.0, color: Colors.red),
borderRadius: BorderRadius.all(Radius.circular(10)),
),
child: Center(child: Text('${entries[index]}')),
);
},
),
Text(
'Footer',
style: TextStyle(fontSize: 24),
),
],
),
);
}
uj5u.com熱心網友回復:
添加這行代碼
physics: NeverScrollableScrollPhysics(),
uj5u.com熱心網友回復:
我想提出一種不同的方法。ListView完全沒有必要。您可以直接遍歷列內的條目。這也將尊重您在 Container 中指定的 150 的寬度,它在 ListView 中沒有這樣做
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Column(
children: [
Text(
'Heading',
style: TextStyle(fontSize: 24),
),
for (String entry in entries) Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
height: 150,
width: 150,
decoration: BoxDecoration(
border: Border.all(width: 2.0, color: Colors.red),
borderRadius: BorderRadius.all(Radius.circular(10)),
),
child: Center(child: Text(entry)),
),
),
Text(
'Footer',
style: TextStyle(fontSize: 24),
),
],
),
);
}
uj5u.com熱心網友回復:
將此添加到您的 ListView.builder()
physics: const ScrollPhysics(),
padding: EdgeInsets.zero,
uj5u.com熱心網友回復:
只需將滾動方向添加到您的ListView.builder()
ListView.builder(
shrinkWrap: true,
scrollDirection: Axis.vertical, <- This is what you need
padding: const EdgeInsets.all(8),
itemCount: entries.length,
itemBuilder: (BuildContext context, int index) {
return Container(
height: 150,
width: 150,
decoration: BoxDecoration(
border: Border.all(width: 2.0, color: Colors.red),
borderRadius: BorderRadius.all(Radius.circular(10)),
),
child: Center(child: Text('${entries[index]}')),
);
},
),
更多資訊在這里
uj5u.com熱心網友回復:
這對我有用
Column(
mainAxisSize: MainAxisSize.max, //Add this
line onyour column
children:[
SomeWidget(),
Expanded(child:ListView.builder())
]
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/497930.html
