gpt4 book ai didi

Flutter GridView 项目 wrap_content 高度

转载 作者:IT王子 更新时间:2023-10-29 07:11:49 25 4
gpt4 key购买 nike

我是一名 Android 开发者,刚接触 Flutter。

我想创建一个 GridView 具有 wrap content 项目高度(我在屏幕截图中用钢笔绘制)。但是我尝试了以下代码,它只给了我方形网格项。我想知道如何获得高度包裹内容网格项目,但我不知道也找不到如何获得它。请帮忙。谢谢。

enter image description here

class CategoryItem extends StatelessWidget {
final Category category;
CategoryItem({Key key, @required this.category})
: assert(category != null),
super(key: key);

@override
Widget build(BuildContext context) {
return Card(
child: Text(
category.name,
style: TextStyle(fontSize: 34.0, fontWeight: FontWeight.bold),
),
color: Colors.amberAccent,
);
}
}


class CategoryGrid extends StatefulWidget {

final List<Category> items;

const CategoryGrid({Key key, this.items}) : super(key: key);

@override
_CategoryGridState createState() => _CategoryGridState();
}

class _CategoryGridState extends State<CategoryGrid> {

@override
Widget build(BuildContext context) {
final Orientation orientation = MediaQuery.of(context).orientation;
return Column(
children: <Widget>[
Expanded(
child: SafeArea(
top: false,
bottom: false,
child: GridView.builder(
itemCount: widget.items.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: (orientation == Orientation.portrait) ? 2 : 3,),
itemBuilder: (BuildContext context, int index) {
return CategoryItem(category: widget.items[index],);
},
),
),
),
],
);
}
}

最佳答案

对于高度,您可以使用“childAspectRatio”

例如-

GridView.count(
childAspectRatio: 4.0,
crossAxisCount: 2,

padding: EdgeInsets.all(5.0),
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 10.0, right: 10.0, top: 5.0),
child: Text(
'10:00 AM - 12:00 PM',
style: new TextStyle( color: Colors.black87, fontSize: 14.0,
fontWeight: FontWeight.normal,
),
),
);
],
shrinkWrap: true,
// todo comment this out and check the result
physics: ClampingScrollPhysics(),
)

关于Flutter GridView 项目 wrap_content 高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55860819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com