estimateWidth method
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;
}