tile static method

Widget tile({
  1. Key? key,
  2. TSize size = TTileSize.h5,
  3. bool hasLeading = true,
  4. bool hasSubtitle = true,
  5. bool hasTrailing = false,
  6. Color? color,
  7. Color? highlightColor,
  8. Duration duration = const Duration(milliseconds: 1500),
  9. bool loading = true,
})

Creates a tile skeleton conforming to TTile geometry.

Implementation

static Widget tile({
  Key? key,
  TSize size = TTileSize.h5,
  bool hasLeading = true,
  bool hasSubtitle = true,
  bool hasTrailing = false,
  Color? color,
  Color? highlightColor,
  Duration duration = const Duration(milliseconds: 1500),
  bool loading = true,
}) {
  if (!loading) return const SizedBox.shrink();

  return Padding(
    key: key,
    padding: EdgeInsets.symmetric(horizontal: size.hPad, vertical: size.vPad),
    child: Row(
      children: [
        if (hasLeading) ...[
          TSkeleton.rect(
            width: size.icon + 12.0,
            height: size.icon + 12.0,
            borderRadius: BorderRadius.circular(size.radius),
            color: color,
            highlightColor: highlightColor,
            duration: duration,
          ),
          SizedBox(width: size.spacing + 6.0),
        ],
        Expanded(
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            mainAxisSize: MainAxisSize.min,
            children: [
              TSkeleton.text(
                width: 130.0,
                height: size.font,
                color: color,
                highlightColor: highlightColor,
                duration: duration,
              ),
              if (hasSubtitle) ...[
                const SizedBox(height: 4.0),
                TSkeleton.text(
                  width: 80.0,
                  height: size.font * 0.8,
                  color: color,
                  highlightColor: highlightColor,
                  duration: duration,
                ),
              ],
            ],
          ),
        ),
        if (hasTrailing) ...[
          const SizedBox(width: 12.0),
          TSkeleton.rect(
            width: 50.0,
            height: 22.0,
            borderRadius: BorderRadius.circular(4.0),
            color: color,
            highlightColor: highlightColor,
            duration: duration,
          ),
        ],
      ],
    ),
  );
}