Flutter 如何删除栅格视图生成的空白
我想为我的颤振应用程序应用分类选择。我是颤振的初学者。我已经尽了最大的努力来这里,但我不知道如何清除这些空白 在homescreen.dart的主体中,我编写了以下代码Flutter 如何删除栅格视图生成的空白,flutter,dart,mobile,flutter-layout,Flutter,Dart,Mobile,Flutter Layout,我想为我的颤振应用程序应用分类选择。我是颤振的初学者。我已经尽了最大的努力来这里,但我不知道如何清除这些空白 在homescreen.dart的主体中,我编写了以下代码 Expanded( child: Padding( padding: const EdgeInsets.symmetric(horizontal: KDefaultPadding), child: GridView.builder( itemCount: produ
Expanded(
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: KDefaultPadding),
child: GridView.builder(
itemCount: products.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 2,
childAspectRatio: 0.75,
mainAxisSpacing: KDefaultPadding,
crossAxisSpacing: KDefaultPadding,
),
itemBuilder: (context, index) => ItemCard(
product:
products[index].tag == "chicken" ? products[index] : null,
press: () => Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DetailScreen(
product: products[index],
),
),
),
),
),
),
),
在物品卡片上,我写了以下内容
class ItemCard extends StatelessWidget {
final Product product;
final Function press;
const ItemCard({
Key key,
this.product,
this.press,
}) : super(key: key);
@override
Widget build(BuildContext context) {
if (product != null) {
return GestureDetector(
onTap: press,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
padding: EdgeInsets.all(KDefaultPadding),
// height: 180,
// width: 160,
decoration: BoxDecoration(
color: product.color,
borderRadius: BorderRadius.circular(16),
),
child: Hero(
tag: "${product.id}",
child: Image.asset(
product.image,
)),
),
Padding(
padding:
const EdgeInsets.symmetric(vertical: KDefaultPadding / 4),
child: Text(
product.title,
style:
TextStyle(color: kTextColor, fontWeight: FontWeight.bold),
),
),
Text(
"$kCurrency${product.price}",
style: TextStyle(
color: kTextLightColor, fontWeight: FontWeight.bold),
)
],
),
);
} else {
return Container();
}
}
class ItemCard扩展了无状态小部件{
最终产品;
最终功能压力机;
常量项目卡({
关键点,
这个产品,,
本报,
}):super(key:key);
@凌驾
小部件构建(构建上下文){
如果(产品!=null){
返回手势检测器(
onTap:新闻界,
子:列(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
容器(
填充:EdgeInsets.all(KDefaultPadding),
//身高:180,
//宽度:160,
装饰:盒子装饰(
颜色:product.color,
边界半径:边界半径。圆形(16),
),
孩子:英雄(
标记:“${product.id}”,
子:Image.asset(
产品形象,
)),
),
填充物(
衬垫:
常数边集对称(垂直:KDefaultPadding/4),
子:文本(
产品名称,
风格:
TextStyle(颜色:kTextColor,fontwweight:fontwweight.bold),
),
),
正文(
“$kCurrency${product.price}”,
样式:TextStyle(
颜色:kTextLightColor,fontWeight:fontWeight.bold),
)
],
),
);
}否则{
返回容器();
}
}
}
我得到的结果是这个
首字母是这个。。。
有人能帮我一下吗?把这个
products.length
改成products.where((product)=>product.tag=='chicken')。length
不把意外的产品放进GridView。把这个products.length
改成products.where((product)=>product.tag=='chicken')).length
以避免将意外产品放入GridView。这可能是一个容器,而不是空的空格,因为当产品为空时返回容器,试着在card.dart中的else语句中给容器涂上红色,然后告诉我。不,我想移除那个空容器,并且只有三个widgetsys。我明白你的意思,问题是你传递的是产品:产品[index]。标记==“鸡肉”?products[index]:null,指向card.dart,因此当产品为null时,您将呈现一个空容器,它是一个容器而不是一个空空间,您必须在将数组传递给GridBuilder之前对其进行过滤。我知道如何做。我不想听起来粗鲁或专横,但我知道这个概念,但很难实现。这可能是一个容器,而不是空的空间,因为您在产品为空时返回容器,试着在card.dart中的else语句中给容器涂上红色,然后告诉我。不,我想移除那个空容器,并且只有三个widgetsys。我明白你的意思,问题是你传递的是产品:产品[index]。标记==“鸡肉”?products[index]:null,指向card.dart,因此当产品为null时,您将呈现一个空容器,它是一个容器而不是一个空空间,您必须在将数组传递给GridBuilder之前对其进行过滤。我知道如何做。我不想听起来粗鲁或专横,但我知道这个概念,但很难实现它。