Flutter 颤振更改GridView小部件中一个元素的大小

Flutter 颤振更改GridView小部件中一个元素的大小,flutter,Flutter,我想知道如何定制这样一个GridView元素: 您可以使用GridViewBuilder并为特定索引返回不同的小部件 GridView.builder( itemCount: no.of.items, gridDelegate: new SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: GridViewRow), itemBuild

我想知道如何定制这样一个GridView元素:


您可以使用
GridViewBuilder
并为特定索引返回不同的
小部件

GridView.builder(
    itemCount: no.of.items,
    gridDelegate:   new SliverGridDelegateWithFixedCrossAxisCount(
                                   crossAxisCount: GridViewRow),
    itemBuilder: (BuildContext context, int index) {
     If (index == 1){
          return Container(
            height: 100,
            width: 100,
            color: Colors.red,
           ) ;
      }
    return Container(
            height: 100,
            width: 100,
            color: Colors.green,
           ) ;
} 
)
这里是结构,当然对于GridView,一些硬编码的值是无用的。你可以从那开始,改变设计

Container(
        height: 300,
        width: 200,
        decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(20),
          color: Colors.orange,
        ),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: [
            Align(
              alignment: Alignment.topRight,
              child: Container(
                height: 50,
                width: 50,
                decoration: BoxDecoration(
                  borderRadius: BorderRadius.only(
                    topRight: Radius.circular(20),
                    bottomLeft: Radius.circular(20),
                  ),
                  color: Colors.white.withOpacity(.3),
                ),
                child: Icon(Icons.add),
              ),
            ),
            Image.asset(
              "/assets/your_image",
              height: 100,
              width: 100,
            ),
            Container(
              padding: EdgeInsets.only(left: 16),
              width: double.infinity,
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  Text('Kiwi'),
                  SizedBox(
                    height: 2,
                  ),
                  Text('Gurugram Mandi'),
                ],
              ),
            ),
            Padding(
              padding: EdgeInsets.only(left: 16, right: 16),
              child: Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  Column(
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      Text("90"),
                      Text("Port Quintal"),
                    ],
                  ),
                  Text("View Prices"),
                ],
              ),
            ),
            SizedBox(height: 5)
          ],
        ),
      );