当前位置:   article > 正文

完美解决flutter tab文字大小不同时切换布局抖动问题_flutter tabbar 切换抖动

flutter tabbar 切换抖动

场景flutter设置tab选中和未选中时候文字大小不一致时tab多余等于三个时会出现切换由于文字大小改变导致的布局抖动

方案 一开始就设置每个条目当选中时候的宽度尺寸 固定每个tab条目尺寸 这样当文案变化的时候就可以保证布局整体不会因为文字大小的改变而抖动问题

代码实现

  1. TabBar(
  2. tabs: List.generate(subPage.length, (index) {
  3. var str = subPage[index];
  4. var tp = TextPainter(textDirection: TextDirection.ltr,text: TextSpan(text: str,style: TextStyle(fontSize: 14,fontWeight: FontWeight.w800,)))..layout();
  5. return Tab(
  6. // text和child 2选一这里要控制条目尺寸选着使用child
  7. // tab下的文字style 默认会使用DefultTextStyle包裹 所有这里面的Text可以不用再声明style 切换也会自带文字缩放
  8. // text: str,
  9. child: Container(
  10. width: tp.width,
  11. child: Text(str)),
  12. );
  13. }).toList(),
  14. labelPadding: EdgeInsets.symmetric(horizontal: 4),
  15. isScrollable: true,
  16. indicator: BoxDecoration(
  17. shape: BoxShape.circle,
  18. color: AexColor.COLOR_0xff02C803),
  19. indicatorPadding:
  20. EdgeInsets.only(top: 32, bottom: 4),
  21. labelStyle: TextStyle(
  22. fontSize: 14, fontWeight: FontWeight.w600),
  23. unselectedLabelStyle: TextStyle(fontSize: 12),
  24. labelColor:
  25. Theme.of(context).textTheme.bodyText1?.color,
  26. unselectedLabelColor:
  27. Theme.of(context).textTheme.caption?.color,
  28. controller: _controllerBottomTab,
  29. ),
  30. height: 40,
  31. padding: EdgeInsets.only(left: 15),
  32. ),

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/431849
推荐阅读
相关标签
  

闽ICP备14008679号