smartBorderRadius method

Container smartBorderRadius({
  1. required bool isFirst,
  2. required bool isLast,
  3. double radius = 12.0,
  4. Axis direction = Axis.vertical,
})

动态圆角 - 根据位置智能设置

Implementation

Container smartBorderRadius({
  required bool isFirst,
  required bool isLast,
  double radius = 12.0,
  Axis direction = Axis.vertical,
}) {
  BorderRadius borderRadius;

  if (direction == Axis.vertical) {
    borderRadius = BorderRadius.only(
      topLeft: isFirst ? Radius.circular(radius) : Radius.zero,
      topRight: isFirst ? Radius.circular(radius) : Radius.zero,
      bottomLeft: isLast ? Radius.circular(radius) : Radius.zero,
      bottomRight: isLast ? Radius.circular(radius) : Radius.zero,
    );
  } else {
    borderRadius = BorderRadius.only(
      topLeft: isFirst ? Radius.circular(radius) : Radius.zero,
      bottomLeft: isFirst ? Radius.circular(radius) : Radius.zero,
      topRight: isLast ? Radius.circular(radius) : Radius.zero,
      bottomRight: isLast ? Radius.circular(radius) : Radius.zero,
    );
  }

  return Container(
    decoration: BoxDecoration(borderRadius: borderRadius),
    child: this,
  );
}