美文网首页
Flutter | 工程结构

Flutter | 工程结构

作者: 清無 | 来源:发表于2020-09-17 19:44 被阅读0次

    MVVM => MWPP

    Model、Widgets、Pages、Provides

    Widget 相当于各个UIKit中的小组件,如UILabel、UIButton等,然后组合成一个大的View(Widget),再放入Controller(Page)中,通过Provide(ViewModel)进行不同组件间的通信(数据共享)。

    class GoodsListGridTile extends MaterialWidgets {
        GoodsItem item;
        build: (context){
            return Container(
                padding: EdgeInsets.all(10),
                child: Column(
                    children: <Widgets>[
                        _goodsImage(),
                        _goodsTitle(),
                        _goodsPrice(),
                        _goodsTags()
                    ]
                )
            );
        }
        
        // 商品标签
        Widget _goodsTags()
        {
            return Container(
                margin: EdgeInsets.only(top: 5)
                child: Text(
                        '${item.tags}',
              style: TextStyle(
                fontSize: 11
                 )
            );
        }
        
        // 商品价格
        Widget _goodsPrice()
        {
            return Container(
                margin: EdgeInsets.only(top:5)
                child: Row(
                    children: [
                        Text(
                        '${item.salePrice}',
              style: TextStyle(
                fontSize: 16
                 ),
                        ),
                        Text(
                        '${item.originPrice}',
              style: TextStyle(
                fontSize: 13
                 ),
                        )
                    ]
                )
            );
        }
        
        // 商品标题
        Widget _goodsTitle()
        {
            return Container(
                margin: EdgeInsets.only(top:5)
                child: Text(
                    '${item.goodsTitle}',
                    style: TextStyle(
                        fontSize: 16
                    ),
                )
            );
        }
        
        // 商品图
        Widget _goodsImage()
        {
            // 封面图
            Widget _goodsImage = Image.network(item.goodsImageUrl);
            // 已售罄
            Widget _soldOutCover = Image('soldout.png');
            if(item.isSoldOut){
                return Stack(
                    _goodsImage,
                    _soldOutCover,
                );
            }
            return _goodsImage;
        }
    }
    
    • lib
      • pages
        • home_page.dart
        • home_pages
          • home_banner_detail_page.dart // 轮播图详情
          • home_category_detail_page.dart // 分类h5详情
          • home_goods_detail_page.dart // 商品详情
          • home_integral_page.dart // 积分中心
          • home_flashsale_page.dart // 限时抢购
          • home_assemble_page.dart // 拼团商品
          • home_bargain_page.dart // 砍价
          • home_trial_page.dart //试用
          • home_cat_column_page.dart //喵专区
          • home_dog_column_page.dart //狗子专区
        • category_page.dart
        • category_pages
        • shopcart_page.dart
        • shopcart_pages
        • mine_page.dart
        • mine_pages
      • assets
        • images
        • htmls
        • jsons
        • videos
        • audos
        • gifs
        • fonts
      • models
        • home_model.dart
        • goods_model.dart
        • goods_detail_model.dart
        • user_model.dart
        • account_model.dart
      • services
        • routes //flutter navigation routes
        • network //environments、urls、methods
        • provides
        • persistent //data persistence class
      • widgets
        • customs //app related
          • PTDimensions.dart
          • PTIcons.dart
          • PTImages.dart
          • PTResources.dart
        • foundations //base foundation
          • PTApplication
          • PTNetwork
          • PTDevice.dart
          • PTJSON.dart
          • PTFont.dart
          • PTColors.dart
        • uikits // ui widget kit
          • PTBasePage.dart
          • PTListView.dart
          • PTGridView.dart
          • PTToast.dart
          • PTDialog.dart
          • PTPannel.dart
          • PTHUD.dart
          • PTIconButton.dart
          • PTImageView.dart
        • customs
          • goods_list_grid_tile.dart
          • goods_list_slip_tile.dart

    相关文章

      网友评论

          本文标题:Flutter | 工程结构

          本文链接:https://www.haomeiwen.com/subject/hwdryktx.html