zoukankan      html  css  js  c++  java
  • 这是我的第一篇博客,测试文章

    大家好,我是一名flutter爱好者,ahyang

    import 'dart:convert';
    import 'package:flutter/material.dart';
    import 'package:baixingg/service/service_method.dart';
    import 'package:baixingg/model/category.dart';
    import 'package:baixingg/model/goods_list.dart';
    import 'package:flutter_screenutil/flutter_screenutil.dart';
    import 'package:provide/provide.dart';
    import 'package:baixingg/provide/child_category.dart';
    import 'package:baixingg/provide/category_goods_list.dart';
    
    class CategoryPage extends StatefulWidget {
      @override
      _CategoryPageState createState() => _CategoryPageState();
    }
    
    class _CategoryPageState extends State<CategoryPage> {
      String _data = '加载中';
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: Text('商品分类'),
            centerTitle: true,
            elevation: 0,
          ),
          body: Row(
            children: <Widget>[
              LeftCategoryNav(),
              Column(
                children: <Widget>[
                  RightCategoryNav(),
                  CategoryGoodsList(),
                ],
              ),
            ],
          ),
        );
      }
    }
    
    // 左侧大类导航
    class LeftCategoryNav extends StatefulWidget {
      @override
      _LeftCategoryState createState() => _LeftCategoryState();
    }
    
    class _LeftCategoryState extends State<LeftCategoryNav> {
      List list = List();
      var listIndex = 0;
    
      void initState() {
        super.initState();
        _getCategory();
        getGoodsList();
      }
    
      @override
      Widget build(BuildContext context) {
        return Container(
           ScreenUtil().setWidth(180),
          decoration: BoxDecoration(
              border: Border(
            right: BorderSide( 1, color: Colors.black12),
          )),
          child: ListView.builder(
            itemCount: list.length,
            itemBuilder: (context, index) {
              return _leftInkWell(index);
            },
          ),
        );
      }
    
      Widget _leftInkWell(int index) {
        bool isClick = false;
        isClick = (index == listIndex) ? true : false;
    
        return InkWell(
          onTap: () {
            setState(() {
              listIndex = index;
            });
            var childList = list[index].bxMallSubDto;
            var categoryId = list[index].mallCategoryId;
            Provide.value<ChildCategory>(context)
                .getChildCategory(childList, categoryId);
            getGoodsList(categoryId: categoryId);
          },
          child: Container(
            height: ScreenUtil().setHeight(100),
            padding: EdgeInsets.only(left: 10, top: 20),
            decoration: BoxDecoration(
                color: isClick ? Color.fromRGBO(236, 236, 236, 1.0) : Colors.white,
                border: Border(
                  bottom: BorderSide( 1, color: Colors.black12),
                )),
            child: Text(
              list[index].mallCategoryName,
              style: TextStyle(
                fontSize: ScreenUtil().setSp(28),
              ),
            ),
          ),
        );
      }
    
      _getCategory() async {
        await request('getCategory').then((val) {
          var data = json.decode(val.toString());
          CategoryModle category = CategoryModle.fromJson(data);
          setState(() {
            list = category.data;
          });
          Provide.value<ChildCategory>(context)
              .getChildCategory(list[0].bxMallSubDto, list[0].mallCategoryId);
        });
      }
    
      getGoodsList({String categoryId}) {
        var data = {
          'categoryId': categoryId == null ? '4' : categoryId,
          'categorySubId': '',
          'page': 1,
        };
    
        request('getMallGoods', formData: data).then((val) {
          var data = json.decode(val.toString());
          CategoryGoodsListModel _listModel = CategoryGoodsListModel.fromJson(data);
          Provide.value<CategoryGoodsListProvide>(context)
              .getGoodsList(_listModel.data);
          // setState(() {
          //   list = _listModel.data;
          // });
        });
      }
    }
    
    // 顶部状态管理分类
    class RightCategoryNav extends StatefulWidget {
      @override
      _RightCategoryNavState createState() => _RightCategoryNavState();
    }
    
    class _RightCategoryNavState extends State<RightCategoryNav> {
      // List list = ['零度', '雪花', '动力', '名酒', '白酒', '红酒', '烈酒', '葡萄酒'];
    
      @override
      Widget build(BuildContext context) {
        return Provide<ChildCategory>(
          builder: (context, child, childCategory) {
            return Container(
              height: ScreenUtil().setHeight(80),
               ScreenUtil().setWidth(570),
              child: ListView.builder(
                scrollDirection: Axis.horizontal,
                itemCount: childCategory.childCategoryList.length,
                itemBuilder: (context, index) {
                  return _rightInWell(
                      index, childCategory.childCategoryList[index]);
                },
              ),
              decoration: BoxDecoration(
                color: Colors.white,
                border: Border(
                  bottom: BorderSide(
                     1,
                    color: Colors.black12,
                  ),
                ),
              ),
            );
          },
        );
      }
    
      Widget _rightInWell(int index, BxMallSubDto item) {
        bool isClick = false;
        isClick = (index == Provide.value<ChildCategory>(context).childIndex)
            ? true
            : false;
    
        return InkWell(
          onTap: () {
            Provide.value<ChildCategory>(context).changeChildIndex(index, item.mallSubId);
            getGoodsList(item.mallSubId);
          },
          child: Container(
            padding: EdgeInsets.fromLTRB(5.0, 10.0, 5.0, 10.0),
            child: Text(
              item.mallSubName,
              style: TextStyle(
                  fontSize: ScreenUtil().setSp(28),
                  color: isClick ? Colors.pink : null),
            ),
          ),
        );
      }
    
      getGoodsList(String categorySubId) {
        var data = {
          'categoryId': Provide.value<ChildCategory>(context).categoryId,
          'categorySubId': categorySubId,
          'page': 1,
        };
    
        request('getMallGoods', formData: data).then((val) {
          var data = json.decode(val.toString());
          CategoryGoodsListModel _listModel = CategoryGoodsListModel.fromJson(data);
          if (_listModel.data == null) {
            Provide.value<CategoryGoodsListProvide>(context).getGoodsList([]);
          } else {
            Provide.value<CategoryGoodsListProvide>(context)
                .getGoodsList(_listModel.data);
          }
          // setState(() {
          //   list = _listModel.data;
          // });
        });
      }
    }
    
    // 商品列表,可以上拉加载
    class CategoryGoodsList extends StatefulWidget {
      @override
      _CategoryGoodsListState createState() => _CategoryGoodsListState();
    }
    
    class _CategoryGoodsListState extends State<CategoryGoodsList> {
      // List list = [];
    
      @override
      void initState() {
        super.initState();
        // getGoodsList();
      }
    
      @override
      Widget build(BuildContext context) {
        return Provide<CategoryGoodsListProvide>(
          builder: (context, child, data) {
            if(data.goodsList.length > 0) {
              return Expanded(
              child: Container(
                 ScreenUtil().setWidth(570),
                child: ListView.builder(
                  itemCount: data.goodsList.length,
                  itemBuilder: (context, index) {
                    return _listView(data.goodsList, index);
                  },
                ),
              ),
            );
            } else {
              return Text('没有数据,嗯好义熙');
            }
          },
        );
      }
    
      Widget _goodsImage(newList, index) {
        return Container(
          padding: EdgeInsets.only(left: 10),
           ScreenUtil().setWidth(200),
          child: Image.network(newList[index].image),
        );
      }
    
      Widget _goodsName(newList, index) {
        return Container(
          padding: EdgeInsets.only(left: 10),
           ScreenUtil().setWidth(370),
          child: Text(
            newList[index].goodsName,
            maxLines: 2,
            overflow: TextOverflow.ellipsis,
            style: TextStyle(
              fontSize: ScreenUtil().setSp(28),
            ),
          ),
        );
      }
    
      Widget _goodsPrice(newList, index) {
        return Container(
           ScreenUtil().setWidth(370),
          margin: EdgeInsets.only(top: 20),
          padding: EdgeInsets.only(left: 10),
          child: Row(
            children: <Widget>[
              Text(
                '价格:¥${newList[index].presentPrice}',
                style: TextStyle(
                  fontSize: ScreenUtil().setSp(30),
                  color: Colors.pink,
                ),
              ),
              Text(
                '${newList[index].oriPrice}',
                style: TextStyle(
                  color: Colors.black26,
                  decoration: TextDecoration.lineThrough,
                ),
              )
            ],
          ),
        );
      }
    
      Widget _listView(newList, index) {
        return InkWell(
          child: Container(
            padding: EdgeInsets.only(top: 10, bottom: 10),
            decoration: BoxDecoration(
              border: Border(
                bottom: BorderSide(
                   1,
                  color: Colors.black12,
                ),
              ),
            ),
            child: Row(
              children: <Widget>[
                _goodsImage(newList, index),
                Column(
                  children: <Widget>[
                    _goodsName(newList, index),
                    _goodsPrice(newList, index),
                  ],
                ),
              ],
            ),
          ),
          onTap: () {},
        );
      }
    }

     这是分割线,

    import 'dart:convert';
    import 'package:flutter/material.dart';
    import 'package:baixingg/service/service_method.dart';
    import 'package:baixingg/model/category.dart';
    import 'package:baixingg/model/goods_list.dart';
    import 'package:flutter_screenutil/flutter_screenutil.dart';
    import 'package:provide/provide.dart';
    import 'package:baixingg/provide/child_category.dart';
    import 'package:baixingg/provide/category_goods_list.dart';

    class CategoryPage extends StatefulWidget {
    @override
    _CategoryPageState createState() => _CategoryPageState();
    }

    class _CategoryPageState extends State<CategoryPage> {
    String _data = '加载中';
    @override
    Widget build(BuildContext context) {
    return Scaffold(
    appBar: AppBar(
    title: Text('商品分类'),
    centerTitle: true,
    elevation: 0,
    ),
    body: Row(
    children: <Widget>[
    LeftCategoryNav(),
    Column(
    children: <Widget>[
    RightCategoryNav(),
    CategoryGoodsList(),
    ],
    ),
    ],
    ),
    );
    }
    }

    // 左侧大类导航
    class LeftCategoryNav extends StatefulWidget {
    @override
    _LeftCategoryState createState() => _LeftCategoryState();
    }

    class _LeftCategoryState extends State<LeftCategoryNav> {
    List list = List();
    var listIndex = 0;

    void initState() {
    super.initState();
    _getCategory();
    getGoodsList();
    }

    @override
    Widget build(BuildContext context) {
    return Container(
    ScreenUtil().setWidth(180),
    decoration: BoxDecoration(
    border: Border(
    right: BorderSide( 1, color: Colors.black12),
    )),
    child: ListView.builder(
    itemCount: list.length,
    itemBuilder: (context, index) {
    return _leftInkWell(index);
    },
    ),
    );
    }

    Widget _leftInkWell(int index) {
    bool isClick = false;
    isClick = (index == listIndex) ? true : false;

    return InkWell(
    onTap: () {
    setState(() {
    listIndex = index;
    });
    var childList = list[index].bxMallSubDto;
    var categoryId = list[index].mallCategoryId;
    Provide.value<ChildCategory>(context)
    .getChildCategory(childList, categoryId);
    getGoodsList(categoryId: categoryId);
    },
    child: Container(
    height: ScreenUtil().setHeight(100),
    padding: EdgeInsets.only(left: 10, top: 20),
    decoration: BoxDecoration(
    color: isClick ? Color.fromRGBO(236, 236, 236, 1.0) : Colors.white,
    border: Border(
    bottom: BorderSide( 1, color: Colors.black12),
    )),
    child: Text(
    list[index].mallCategoryName,
    style: TextStyle(
    fontSize: ScreenUtil().setSp(28),
    ),
    ),
    ),
    );
    }

    _getCategory() async {
    await request('getCategory').then((val) {
    var data = json.decode(val.toString());
    CategoryModle category = CategoryModle.fromJson(data);
    setState(() {
    list = category.data;
    });
    Provide.value<ChildCategory>(context)
    .getChildCategory(list[0].bxMallSubDto, list[0].mallCategoryId);
    });
    }

    getGoodsList({String categoryId}) {
    var data = {
    'categoryId': categoryId == null ? '4' : categoryId,
    'categorySubId': '',
    'page': 1,
    };

    request('getMallGoods', formData: data).then((val) {
    var data = json.decode(val.toString());
    CategoryGoodsListModel _listModel = CategoryGoodsListModel.fromJson(data);
    Provide.value<CategoryGoodsListProvide>(context)
    .getGoodsList(_listModel.data);
    // setState(() {
    // list = _listModel.data;
    // });
    });
    }
    }

    // 顶部状态管理分类
    class RightCategoryNav extends StatefulWidget {
    @override
    _RightCategoryNavState createState() => _RightCategoryNavState();
    }

    class _RightCategoryNavState extends State<RightCategoryNav> {
    // List list = ['零度', '雪花', '动力', '名酒', '白酒', '红酒', '烈酒', '葡萄酒'];

    @override
    Widget build(BuildContext context) {
    return Provide<ChildCategory>(
    builder: (context, child, childCategory) {
    return Container(
    height: ScreenUtil().setHeight(80),
    ScreenUtil().setWidth(570),
    child: ListView.builder(
    scrollDirection: Axis.horizontal,
    itemCount: childCategory.childCategoryList.length,
    itemBuilder: (context, index) {
    return _rightInWell(
    index, childCategory.childCategoryList[index]);
    },
    ),
    decoration: BoxDecoration(
    color: Colors.white,
    border: Border(
    bottom: BorderSide(
    1,
    color: Colors.black12,
    ),
    ),
    ),
    );
    },
    );
    }

    Widget _rightInWell(int index, BxMallSubDto item) {
    bool isClick = false;
    isClick = (index == Provide.value<ChildCategory>(context).childIndex)
    ? true
    : false;

    return InkWell(
    onTap: () {
    Provide.value<ChildCategory>(context).changeChildIndex(index, item.mallSubId);
    getGoodsList(item.mallSubId);
    },
    child: Container(
    padding: EdgeInsets.fromLTRB(5.0, 10.0, 5.0, 10.0),
    child: Text(
    item.mallSubName,
    style: TextStyle(
    fontSize: ScreenUtil().setSp(28),
    color: isClick ? Colors.pink : null),
    ),
    ),
    );
    }

    getGoodsList(String categorySubId) {
    var data = {
    'categoryId': Provide.value<ChildCategory>(context).categoryId,
    'categorySubId': categorySubId,
    'page': 1,
    };

    request('getMallGoods', formData: data).then((val) {
    var data = json.decode(val.toString());
    CategoryGoodsListModel _listModel = CategoryGoodsListModel.fromJson(data);
    if (_listModel.data == null) {
    Provide.value<CategoryGoodsListProvide>(context).getGoodsList([]);
    } else {
    Provide.value<CategoryGoodsListProvide>(context)
    .getGoodsList(_listModel.data);
    }
    // setState(() {
    // list = _listModel.data;
    // });
    });
    }
    }

    // 商品列表,可以上拉加载
    class CategoryGoodsList extends StatefulWidget {
    @override
    _CategoryGoodsListState createState() => _CategoryGoodsListState();
    }

    class _CategoryGoodsListState extends State<CategoryGoodsList> {
    // List list = [];

    @override
    void initState() {
    super.initState();
    // getGoodsList();
    }

    @override
    Widget build(BuildContext context) {
    return Provide<CategoryGoodsListProvide>(
    builder: (context, child, data) {
    if(data.goodsList.length > 0) {
    return Expanded(
    child: Container(
    ScreenUtil().setWidth(570),
    child: ListView.builder(
    itemCount: data.goodsList.length,
    itemBuilder: (context, index) {
    return _listView(data.goodsList, index);
    },
    ),
    ),
    );
    } else {
    return Text('没有数据,嗯好义熙');
    }
    },
    );
    }

    Widget _goodsImage(newList, index) {
    return Container(
    padding: EdgeInsets.only(left: 10),
    ScreenUtil().setWidth(200),
    child: Image.network(newList[index].image),
    );
    }

    Widget _goodsName(newList, index) {
    return Container(
    padding: EdgeInsets.only(left: 10),
    ScreenUtil().setWidth(370),
    child: Text(
    newList[index].goodsName,
    maxLines: 2,
    overflow: TextOverflow.ellipsis,
    style: TextStyle(
    fontSize: ScreenUtil().setSp(28),
    ),
    ),
    );
    }

    Widget _goodsPrice(newList, index) {
    return Container(
    ScreenUtil().setWidth(370),
    margin: EdgeInsets.only(top: 20),
    padding: EdgeInsets.only(left: 10),
    child: Row(
    children: <Widget>[
    Text(
    '价格:¥${newList[index].presentPrice}',
    style: TextStyle(
    fontSize: ScreenUtil().setSp(30),
    color: Colors.pink,
    ),
    ),
    Text(
    '${newList[index].oriPrice}',
    style: TextStyle(
    color: Colors.black26,
    decoration: TextDecoration.lineThrough,
    ),
    )
    ],
    ),
    );
    }

    Widget _listView(newList, index) {
    return InkWell(
    child: Container(
    padding: EdgeInsets.only(top: 10, bottom: 10),
    decoration: BoxDecoration(
    border: Border(
    bottom: BorderSide(
    1,
    color: Colors.black12,
    ),
    ),
    ),
    child: Row(
    children: <Widget>[
    _goodsImage(newList, index),
    Column(
    children: <Widget>[
    _goodsName(newList, index),
    _goodsPrice(newList, index),
    ],
    ),
    ],
    ),
    ),
    onTap: () {},
    );
    }
    }
  • 相关阅读:
    Thinking in Java Reading Note(9.接口)
    Thinking in java Reading Note(8.多态)
    Thinking in Java Reading Note(7.复用类)
    SQL必知必会
    Thinking in Java Reading Note(5.初始化与清理)
    Thinking in Java Reading Note(2.一切都是对象)
    鸟哥的Linux私房菜笔记(1.基础)
    Thinking in Java Reading Note(1.对象导论)
    CoreJava2 Reading Note(2:I/O)
    CoreJava2 Reading Note(1:Stream)
  • 原文地址:https://www.cnblogs.com/ahyang/p/ahyang.html
Copyright © 2011-2022 走看看