area_item_table.dart 4.13 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';
import 'package:one_key/widgets/h_empty_view.dart';

class AreaItemTable extends StatefulWidget {
  final String? currentArea; //当前选中区域名称
  final Area area;
  final ValueChanged selectCallback;
  final bool showBadge;

  AreaItemTable(this.area, this.currentArea, this.selectCallback,
      {this.showBadge = true});

  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return new AreaItemTableState();
  }
}

class AreaItemTableState extends State<AreaItemTable> {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    Area area = widget.area;
    bool isSelected = area.name == widget.currentArea;
    return GestureDetector(
      onTap: () {
        widget.selectCallback(widget.area);
            },
      child:
          // Stack(
          //   overflow: Overflow.visible,
          //   alignment: Alignment.topLeft,
          //   children: <Widget>[
          Container(
        // width: ScreenUtil().setWidth(104 * 2),
        // height: ScreenUtil().setWidth(10),
        margin: EdgeInsets.only(
          right: ScreenUtil().setWidth(15),
          top: ScreenUtil().setWidth(20),
        ),
        padding: EdgeInsets.symmetric(
          horizontal: ScreenUtil().setWidth(14),
          // vertical: ScreenUtil().setWidth(4)
        ),
        alignment: Alignment.center,
        decoration: BoxDecoration(
            borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)),
            color: isSelected
                ? MyColours.color_199095
                : widget.showBadge && area.count != -1 && area.count! <= 0
                    ? Color.fromRGBO(154, 154, 154, 1)
                    : MyColours.color_ffffff,
            border: Border.all(
                color: MyColours.color_E0E0E0,
                width: ScreenUtil().setWidth(2))),
        child: Text(
          area.name!,
          overflow: TextOverflow.ellipsis,
          style: TextStyle(
              color: isSelected ||
                      (widget.showBadge && area.count != -1 && area.count! <= 0)
                  ? MyColours.color_ffffff
                  : MyColours.color_333333,
              fontSize: ScreenUtil().setSp(24),
              decoration: TextDecoration.none,
              fontWeight: FontWeight.normal),
        ),
      ),
      // !widget.showBadge
      //     ? SizedBox()
      //     : area.count == -1
      //         ? Container()
      //         : Positioned(
      //             right: ScreenUtil().setWidth(12),
      //             top: ScreenUtil().setWidth(6),
      //             child: Container(
      //               padding: EdgeInsets.symmetric(
      //                   vertical: ScreenUtil().setWidth(6),
      //                   horizontal: ScreenUtil().setWidth(4)),
      //               // width: ScreenUtil().setWidth(78),
      //               // height: ScreenUtil().setWidth(30),
      //               alignment: Alignment.center,
      //               decoration: BoxDecoration(
      //                 color: area.count <= 0
      //                     ? MyColours.color_999999
      //                     : MyColours.color_199095,
      //                 // borderRadius: BorderRadius.only(
      //                 //     topLeft: Radius.circular(ScreenUtil().setWidth(10)),
      //                 //     topRight: Radius.circular(ScreenUtil().setWidth(15)),
      //                 //     bottomRight:
      //                 //         Radius.circular(ScreenUtil().setWidth(15)))
      //               ),
      //               child: Text(area.count <= 0 ? "满座" : "${area.count}",
      //                   style: TextStyle(
      //                       color: MyColours.color_ffffff,
      //                       fontSize: ScreenUtil().setSp(26),
      //                       decoration: TextDecoration.none,
      //                       fontWeight: FontWeight.normal)),
      //             ),
      //           ),
      // ],
      // )
    );
  }
}