如何在颤动中实现列中的gridView?
how to implement gridView in column in flutter?
我有一个包含表单的 SingleChildScrollView,表单包含一个列。
现在我想像这样使用 GridView:
return SingleChildScrollView(
child: Container(
width: MediaQuery.of(context).size.width,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xffffffff),
borderRadius: BorderRadius.all(Radius.circular(20))),
margin: EdgeInsets.only(
right: 25, left: 25, top: MediaQuery.of(context).size.height * .12),
child: Form(
key: _formKey,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
new InputFieldArea(
icon: Icons.person,
controller: _payValController,
lable: 'مبلغ',
maxLength: 9,
validator: (value) {
if (value.isEmpty) {
return 'لطفا این فرم را پر کنید';
}
return null;
},
textInputType: TextInputType.number,
),
_imagesAssets.length > 0
? new SizedBox(
child: _buildGridView(),
)
: Container(),
_submit(context),
],
),
),
));
这是我的网格视图:
Widget _buildGridView() {
return GridView.count(
crossAxisCount: 2,
padding: EdgeInsets.all(10),
children: List.generate(_imagesAssets.length, (index) {
Asset asset = _imagesAssets[index];
return AssetThumb(
asset: asset,
width: 100,
height: 100,
);
}),
);
}
但是我得到了这个渲染错误:
RenderBox 未布局:RenderRepaintBoundary#3ec8a relayoutBoundary=up18 NEEDS-PAINT
'package:flutter/src/rendering/box.dart':
断言失败:第 1930 行第 12 行:'hasSize'
任何想法都会很棒
更改为:
_imagesAssets.length > 0
? Expanded(
child: _buildGridView(),
)
: Container(),
在 GridView 中使用以下参数
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
或者您可以为网格视图小部件指定固定高度。
我有一个包含表单的 SingleChildScrollView,表单包含一个列。 现在我想像这样使用 GridView:
return SingleChildScrollView(
child: Container(
width: MediaQuery.of(context).size.width,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xffffffff),
borderRadius: BorderRadius.all(Radius.circular(20))),
margin: EdgeInsets.only(
right: 25, left: 25, top: MediaQuery.of(context).size.height * .12),
child: Form(
key: _formKey,
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
new InputFieldArea(
icon: Icons.person,
controller: _payValController,
lable: 'مبلغ',
maxLength: 9,
validator: (value) {
if (value.isEmpty) {
return 'لطفا این فرم را پر کنید';
}
return null;
},
textInputType: TextInputType.number,
),
_imagesAssets.length > 0
? new SizedBox(
child: _buildGridView(),
)
: Container(),
_submit(context),
],
),
),
));
这是我的网格视图:
Widget _buildGridView() {
return GridView.count(
crossAxisCount: 2,
padding: EdgeInsets.all(10),
children: List.generate(_imagesAssets.length, (index) {
Asset asset = _imagesAssets[index];
return AssetThumb(
asset: asset,
width: 100,
height: 100,
);
}),
);
}
但是我得到了这个渲染错误: RenderBox 未布局:RenderRepaintBoundary#3ec8a relayoutBoundary=up18 NEEDS-PAINT 'package:flutter/src/rendering/box.dart': 断言失败:第 1930 行第 12 行:'hasSize' 任何想法都会很棒
更改为:
_imagesAssets.length > 0
? Expanded(
child: _buildGridView(),
)
: Container(),
在 GridView 中使用以下参数
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
或者您可以为网格视图小部件指定固定高度。