estimateWidth method

double estimateWidth(
  1. BuildContext context
)

Implementation

double estimateWidth(BuildContext context) {
  if (tabs.isEmpty) return 0;

  double totalWidth = 0;
  for (var i = 0; i < tabs.length; i++) {
    final tab = tabs[i];
    double tabWidth = 0;

    // TabRenderer uses horizontal: 8 by default
    final padding = tabPadding?.horizontal ?? 16.0;
    tabWidth += padding;

    if (tab.icon != null) {
      tabWidth += 16.0; // Renderer uses size 16
      if (tab.text != null) tabWidth += 8.0; // Renderer uses spacing 8
    }

    if (tab.text != null) {
      tabWidth += WidthHelper.measureText(
        context,
        tab.text!,
        const TextStyle(fontSize: 13.0, fontWeight: FontWeight.w400),
      );
    }

    if (tab.isActive) {
      tabWidth += 10.0; // 6 dot + 4 margin
    }

    totalWidth += tabWidth;
    if (i < tabs.length - 1) {
      totalWidth += tabSpacing;
    }
  }

  return totalWidth;
}