area_item.dart 2.2 KB
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/area.dart';
import 'package:one_key/res/colors.dart';

class AreaItem extends StatefulWidget{

  final String currentArea;//当前选中区域名称
  final Area area;
  final ValueChanged selectCallback;
  
  AreaItem(this.area,this.currentArea,this.selectCallback);
  
  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return new AreaItemState();
  }
}

class AreaItemState extends State<AreaItem>{

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    Area area=widget.area;
    bool isSelected=area.name==widget.currentArea;
    return GestureDetector(
      onTap: (){
        if(widget.selectCallback!=null){
          widget.selectCallback(widget.area);
        }
      },
      child: Stack(
        children: <Widget>[
          Container(
            width: ScreenUtil().setWidth(189),
            height: ScreenUtil().setHeight(207),
            alignment: Alignment.center,
            decoration: BoxDecoration(
                color: isSelected?MyColours.color_ffffff:MyColours.color_f1f1f1,
                border: Border(bottom: BorderSide(color: MyColours.color_ffffff,width: ScreenUtil().setHeight(1)))
            ),
            child: Text(area.name,style: TextStyle(color: isSelected?MyColours.color_2bb5b7:MyColours.color_828282,fontSize: ScreenUtil().setSp(26),decoration: TextDecoration.none),),
          ),
          Positioned(
            left: 0,
            top: 0,
            child: Container(
              width: ScreenUtil().setWidth(73),
              height: ScreenUtil().setHeight(37),
              alignment: Alignment.center,
              decoration: BoxDecoration(
                  color: MyColours.color_63a6d1,
                  borderRadius: BorderRadius.only(topRight: Radius.circular(ScreenUtil().setWidth(8)),bottomRight: Radius.circular(ScreenUtil().setWidth(8)))
              ),
              child: Text("余${area.count}",style: TextStyle(color: MyColours.color_ffffff,fontSize: ScreenUtil().setSp(22),decoration: TextDecoration.none)),
            ),
          ),
        ],
      ),
    );
  }
}