zoukankan      html  css  js  c++  java
  • 20 Flutter仿京东商城项目 商品详情 底部弹出筛选属性 以及筛选属性页面布局

    ProductContentFirst.dart

    import 'package:flutter/material.dart';
    import '../../widget/JdButton.dart';
    import '../../services/ScreenAdaper.dart';
    
    class ProductContentFirst extends StatefulWidget {
      ProductContentFirst({Key key}) : super(key: key);
    
      _ProductContentFirstState createState() => _ProductContentFirstState();
    }
    
    class _ProductContentFirstState extends State<ProductContentFirst> {
      _attrBottomSheet() {
        showModalBottomSheet(
            context: context,
            builder: (context) {
              return GestureDetector(
                  //Gesture:手势  Detector:探测器
                  onTap: () {
                    return false;
                  },
                  child: Stack(
                    children: <Widget>[
                      Container(
                        padding: EdgeInsets.all(ScreenAdaper.width(20)),
                        child: ListView(
                          children: <Widget>[
                            Column(
                              children: <Widget>[
                                Wrap(
                                  children: <Widget>[
                                    Container(
                                       ScreenAdaper.width(100),
                                      child: Padding(
                                        padding: EdgeInsets.only(
                                            top: ScreenAdaper.height(35)),
                                        child: Text('颜色',
                                            style: TextStyle(
                                                fontWeight: FontWeight.bold)),
                                      ),
                                    ),
                                    Container(
                                       ScreenAdaper.width(610),
                                      child: Wrap(
                                        children: <Widget>[
                                          Container(
                                            margin: EdgeInsets.all(10),
                                            child: Chip(
                                              label: Text('白色'),
                                              padding: EdgeInsets.all(10),
                                            ),
                                          ),
                                          Container(
                                            margin: EdgeInsets.all(10),
                                            child: Chip(
                                              label: Text('白色'),
                                              padding: EdgeInsets.all(10),
                                            ),
                                          ),
                                          Container(
                                            margin: EdgeInsets.all(10),
                                            child: Chip(
                                              label: Text('白色'),
                                              padding: EdgeInsets.all(10),
                                            ),
                                          ),
                                        ],
                                      ),
                                    )
                                  ],
                                ),
                              ],
                            )
                          ],
                        ),
                      ),
                      Positioned(
                        bottom: 0,
                         ScreenAdaper.width(750),
                        height: ScreenAdaper.height(76),
                        child: Row(
                          children: <Widget>[
                            Container(
                                 ScreenAdaper.width(750),
                                height: ScreenAdaper.height(76),
                                child: Row(
                                  children: <Widget>[
                                    Expanded(
                                      flex: 1,
                                      child: Container(
                                        margin: EdgeInsets.fromLTRB(10,0,10,0),
                                        child: JdButton(
                                          color: Color.fromRGBO(253, 1, 0, 0.9),
                                          text: "加入购物车",
                                          cb: () {
                                            print('加入购物车');
                                          },
                                        ),
                                      ),
                                    ),
                                    Expanded(
                                      flex: 1,
                                      child: Container(
                                        margin: EdgeInsets.fromLTRB(10,0,10,0),
                                        child: JdButton(
                                          color: Color.fromRGBO(255, 165, 0, 0.9),
                                          text: "立即购物",
                                          cb: () {
                                            print('立即购物');
                                          },
                                        ),
                                      )
                                    )
                                  ],
                                ))
                          ],
                        ),
                      )
                    ],
                  ));
            });
      }
    
      @override
      Widget build(BuildContext context) {
        return Container(
            padding: EdgeInsets.all(10),
            child: ListView(
              children: <Widget>[
                AspectRatio(
                    aspectRatio: 16 / 9,
                    child: Image.network(
                      "https://www.itying.com/images/flutter/p1.jpg",
                      fit: BoxFit.cover,
                    )),
                Container(
                  padding: EdgeInsets.only(top: 10),
                  child: Text(
                      "联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad",
                      style: TextStyle(
                          color: Colors.black87, fontSize: ScreenAdaper.size(36))),
                ),
                Container(
                  padding: EdgeInsets.only(top: 10),
                  child: Text(
                      "联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad联想ThinkPad",
                      style: TextStyle(
                          color: Colors.black54, fontSize: ScreenAdaper.size(28))),
                ),
                Container(
                  padding: EdgeInsets.only(top: 10),
                  child: Row(
                    children: <Widget>[
                      Expanded(
                        flex: 1,
                        child: Row(
                          children: <Widget>[
                            Text('特价'),
                            Text('¥28',
                                style: TextStyle(
                                    color: Colors.red,
                                    fontSize: ScreenAdaper.size(46)))
                          ],
                        ),
                      ),
                      Expanded(
                        flex: 1,
                        child: Row(
                          mainAxisAlignment: MainAxisAlignment.end,
                          children: <Widget>[
                            Text('原价'),
                            Text('¥50',
                                style: TextStyle(
                                    color: Colors.black38,
                                    fontSize: ScreenAdaper.size(28),
                                    decoration: TextDecoration.lineThrough))
                          ],
                        ),
                      )
                    ],
                  ),
                ),
                //筛选:
                Container(
                    margin: EdgeInsets.only(top: 10),
                    height: ScreenAdaper.height(80),
                    child: InkWell(
                      onTap: () {
                        _attrBottomSheet();
                      },
                      child: Row(
                        children: <Widget>[
                          Text('已选', style: TextStyle(fontWeight: FontWeight.bold)),
                          Text('115,黑色')
                        ],
                      ),
                    )),
                Divider(),
                Container(
                  height: ScreenAdaper.height(80),
                  child: Row(
                    children: <Widget>[
                      Text('运费', style: TextStyle(fontWeight: FontWeight.bold)),
                      Text('免运费')
                    ],
                  ),
                ),
                Divider()
              ],
            ));
      }
    }

  • 相关阅读:
    POJ 1754 Splay
    POJ 3481Double Queue Splay
    前缀表达式求值
    Treap(树堆):随机平衡二叉树实现
    Tarjian算法求强联通分量
    (转)priority_queue的用法
    001Angular2环境准备
    9.富客户端应用程序的线程
    8.信号
    7.线程的优先级
  • 原文地址:https://www.cnblogs.com/yiweiyihang/p/11461705.html
Copyright © 2011-2022 走看看