getChildrenChoice method

List<Widget> getChildrenChoice(
  1. List<SelectorItem> list,
  2. double textSize,
  3. double padding,
  4. Color textColor,
  5. Color lineColor,
  6. Color selectColor,
  7. Color unSelectedColor,
  8. double iconWidth, {
  9. String iconAssetName = '',
  10. double? describeSize,
  11. Color? describeColor,
  12. dynamic callBack(
    1. SelectorItem selectorItem,
    2. int position
    )?,
})

列表Item

Implementation

List<Widget> getChildrenChoice(
    List<SelectorItem> list,
    double textSize,
    double padding,
    Color textColor,
    Color lineColor,
    Color selectColor,
    Color unSelectedColor,
    double iconWidth,
    {String iconAssetName = '',
    double? describeSize,
    Color? describeColor,
    Function(SelectorItem selectorItem, int position)? callBack}) {
  List<Widget> children = [];
  for (int i = 0; i < list.length; i++) {
    SelectorItem item = list[i];
    Widget widget = InkWell(
      child: Padding(
        padding: EdgeInsets.symmetric(horizontal: padding),
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            Expanded(
              child: Row(
                mainAxisSize: MainAxisSize.max,
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  Column(
                    mainAxisSize: MainAxisSize.min,
                    mainAxisAlignment: MainAxisAlignment.center,
                    crossAxisAlignment: CrossAxisAlignment.start,
                    children: [
                      Text(
                        item.name,
                        maxLines: 1,
                        textAlign: TextAlign.center,
                        overflow: TextOverflow.ellipsis,
                        style:
                            TextStyle(fontSize: textSize, color: textColor),
                      ),
                      if (item.describe.isNotEmpty)
                        Text(
                          item.describe,
                          maxLines: 1,
                          textAlign: TextAlign.center,
                          overflow: TextOverflow.ellipsis,
                          style: TextStyle(
                              fontSize: describeSize ?? textSize,
                              color: describeColor ?? textColor),
                        ),
                    ],
                  ),
                  iconAssetName.isNotEmpty
                      ? Image(
                          fit: BoxFit.fitWidth,
                          width: iconWidth,
                          alignment: Alignment.center,
                          color: item.check ? selectColor : unSelectedColor,
                          image: AssetImage(iconAssetName))
                      : Icon(Icons.check_circle,
                          color: item.check ? selectColor : unSelectedColor)
                ],
              ),
            ),
            if (i < list.length - 1)
              Divider(
                height: 1,
                color: lineColor,
              )
          ],
        ),
      ),
      onTap: () {
        callBack?.call(item, i);
      },
    );
    children.add(widget);
  }
  return children;
}