我有一個MasonryGridView:
@override
Widget buildPage(
BuildContext context, AnonymousQuestionnaireDetailsPageVM viewModel) {
return Scaffold(
appBar: AppBar(
title: Text(AppLocalizations.of(context)!.questionnaire),
),
body: Column(
children: [
Expanded(
child: MasonryGridView.count(
itemCount: items.length,
padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 10),
crossAxisCount: 1,
mainAxisSpacing: 1,
crossAxisSpacing: 1,
itemBuilder: (context, index) {
return ListView()
),
),
ElevatedButton(
child: Text(AppLocalizations.of(context)!.finishAction),
onPressed: () {},
),
],
),
);
我還有一個帶有以下小部件的 ListView 單獨類:
@override
Widget build(BuildContext context) {
return Flexible(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
const Text(
"Some title",
style: TextStyle(fontSize: 16),
),
ListView.builder(
itemCount: 100,
itemBuilder: (context, index) {
return const ListTile(
title: Text("some"),
contentPadding:
EdgeInsets.symmetric(vertical: 0.0, horizontal: 16.0),
);
},
),
],
),
);
}
當我運行我的代碼時,它給出了以下錯誤:
Failed assertion: line 1979 pos 12: 'hasSize'
The relevant error-causing widget was
Column
如何將大小設定為列或以其他方式修復它?對我來說,有必要ListView作為一個單獨的課程(會有很多邏輯)并給它一個標題。
uj5u.com熱心網友回復:
ListView 的高度是無限的,你可以提供固定的高度,或者shrinkWrap: true,在 ListView 上。
itemBuilder: (context, index) {
return ListView(
shrinkWrap: true,
children: [Text("A")],
);
},
或者
itemBuilder: (context, index) {
return SizedBox(
height: 100,
child: ListView(
// shrinkWrap: true,
children: [Text("A")],
),
);
},
使用ShrinkWrap是有成本的,如果您不需要為單個專案滾動,您可以嘗試Column小部件。
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Column(
children: [
Expanded(
child: MasonryGridView.count(
itemCount: 33,
padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 10),
crossAxisCount: 1,
mainAxisSpacing: 1,
crossAxisSpacing: 1,
itemBuilder: (context, index) {
return SizedBox(
height: 100,
child: ListView(
// shrinkWrap: true,
children: [Text("A")],
),
);
},
),
),
ElevatedButton(
child: Text("f"),
onPressed: () {},
),
],
),
);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/504703.html
