in Flutter
как я могу нарисовать индикатор вкладки радиуса границы, как на картинке ниже?
под кодом ниже можно нарисовать только индикатор круга, который я находится в библиотеке github
.
TabBar(
isScrollable: true,
controller: _tabController,
labelColor: Colors.black,
tabs: <Widget>[
Tab(
text: 'DOTTED',
),
Tab(
text: 'Tab',
),
Tab(
text: 'INDICATOR',
),
],
indicator: DotIndicator(
indicatorColor: Colors.black,
radius: 3,
),
indicatorWeight: 2 * kDefaultDotIndicatorRadius,
),
:
const kDefaultDotIndicatorRadius = 3.0;
class DotTabIndicator extends Decoration {
const DotTabIndicator({this.indicatorColor, this.radius = kDefaultDotIndicatorRadius});
final Color indicatorColor;
final double radius;
@override
BoxPainter createBoxPainter([onChanged]) {
return _DotPainter(this, onChanged);
}
}
class _DotPainter extends BoxPainter {
_DotPainter(this.decoration, VoidCallback onChanged) : super(onChanged);
final DotTabIndicator decoration;
@override
void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) {
final center = configuration.size.center(offset);
final dy = configuration.size.height;
final newOffset = Offset(center.dx, dy - 8);
final paint = Paint();
paint.color = decoration.indicatorColor;
paint.style = PaintingStyle.fill;
canvas.drawCircle(newOffset, decoration.radius, paint);
}
}