购物商品列表的实现

购物商品列表的实现

购物商品列表的实现
请添加图片描述
请添加图片描述


class ProductListPage extends StatefulWidget {
  late Map _arguments;

  ProductListPage({Key? key, arguments}) : super(key: key) {
    _arguments = arguments;
  }

  @override
  State<ProductListPage> createState() => _ProductListPageState();
}

class _ProductListPageState extends State<ProductListPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('商品列表'),
      ),
      //最外部套一个Padding保证整个列表与屏幕边有一定距离
      body: Padding(
        padding: EdgeInsets.all(10),
        //显示列表
        child: ListView.builder(
          itemBuilder: (context, index) {
          //用一个竖直展示的组件,上面是一个Row用于展示内容,下部为一个Divider用来充当分割,与下面一个条目保持一定距离
            return Column(
              children: [
              //竖直组件,左边显示图片,右边显示内容
                Row(
                  children: [
                  //图片用一个SizeBox包裹来控制大小
                    SizedBox(
                      width: ScreenAdapter.width(180),
                      height: ScreenAdapter.width(180),
                      child: Image.network(
                        "https://www.itying.com/images/flutter/list2.jpg",
                        fit: BoxFit.cover,
                      ),
                    ),
                    //右边Expanded占屏幕剩下所有宽度
                    Expanded(
                      flex: 1,
                      //Container包裹右边所有文字部分,还可以设置高度
                      child: Container(
                        height: ScreenAdapter.higth(180),
                        padding: EdgeInsets.all(10),
                       //右边再用一个垂直组件,内部包含三个小组件
                        child: Column(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: [
                            Text(
                              "戴尔(DELL)灵越3670 英特尔酷睿i5 高性能 台式电脑整机(九代)",
                              maxLines: 2,
                              overflow: TextOverflow.ellipsis,
                            ),
                            Row(
                              children: [
                              //方便给文字设置边框和背景颜色
                                Container(
                                  height: ScreenAdapter.higth(36),
                                  margin: EdgeInsets.only(right: 10),
                                  alignment: Alignment(0, 0),
                                  padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
                                  decoration: BoxDecoration(
                                    borderRadius: BorderRadius.circular(10),
                                    color: Color.fromRGBO(230, 230, 230, 0.9),
                                  ),
                                  child: Text('4G'),
                                ),
                                Container(
                                  height: ScreenAdapter.higth(36),
                                  alignment: Alignment(0, 0),
                                  margin: EdgeInsets.only(right: 10),
                                  padding: EdgeInsets.fromLTRB(10, 0, 10, 0),
                                  decoration: BoxDecoration(
                                    borderRadius: BorderRadius.circular(10),
                                    color: Color.fromRGBO(230, 230, 230, 0.9),
                                  ),
                                  child: Text('4G'),
                                ),
                              ],
                            ),
                            Text(
                              "¥990",
                              style: TextStyle(color: Colors.red, fontSize: 16),
                            )
                          ],
                        ),
                      ),
                    )
                  ],
                ),
                Divider(
                  height: 20,
                )
              ],
            );
          },
          itemCount: 10,
        ),
      ),
    );
  }
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值