是否有任何方法可以像此图像一样将指示器添加到BottomNavigatorBarItem?
8yparm6h1#
This包应该能够帮助您实现这一点。
ghg1uchk2#
您可以使用TabBar,而不是使用自订装饰的BottomNavigationBar:
TabBar
BottomNavigationBar
class TopIndicator extends Decoration { @override BoxPainter createBoxPainter([VoidCallback? onChanged]) { return _TopIndicatorBox(); } } class _TopIndicatorBox extends BoxPainter { @override void paint(Canvas canvas, Offset offset, ImageConfiguration cfg) { Paint _paint = Paint() ..color = Colors.lightblue ..strokeWidth = 5 ..isAntiAlias = true; canvas.drawLine(offset, Offset(cfg.size!.width + offset.dx, 0), _paint); } }
然后使用TapBar(indicator: TopIndicator ...)将装饰传递到TapBar。
TapBar(indicator: TopIndicator ...)
要将TabBar用作Scaffold.bottomNavigationBar,您很可能希望将其 Package 在Material中以应用背景色:
Scaffold.bottomNavigationBar
Material
Scaffold( bottomNavigationBar: Material( color: Colors.white, child: TabBar( indicator: TopIndicator(), tabs: const <Widget>[ Tab(icon: Icon(Icons.home_outlined), text: 'Reward'), ... ], ), ), ... )
感谢Ara Kurghinyan的原创创意。
2条答案
按热度按时间8yparm6h1#
This包应该能够帮助您实现这一点。
ghg1uchk2#
您可以使用
TabBar
,而不是使用自订装饰的BottomNavigationBar
:然后使用
TapBar(indicator: TopIndicator ...)
将装饰传递到TapBar。要将TabBar用作
Scaffold.bottomNavigationBar
,您很可能希望将其 Package 在Material
中以应用背景色:感谢Ara Kurghinyan的原创创意。