flutter TabBar怎么自定义带圆角的指示器
时间: 2024-02-25 19:54:22 浏览: 137
要自定义带圆角的 TabBar 指示器,可以通过继承 `Decoration` 类自定义一个装饰器,然后在 `TabBar` 的 `indicator` 属性中使用。
以下是一个简单的自定义圆角指示器的示例代码:
```dart
class CustomTabIndicator extends Decoration {
@override
BoxPainter createBoxPainter([VoidCallback? onChanged]) {
return _CustomPainter(this, onChanged);
}
}
class _CustomPainter extends BoxPainter {
final CustomTabIndicator decoration;
_CustomPainter(this.decoration, VoidCallback? onChanged) : super(onChanged);
@override
void paint(Canvas canvas, Offset offset, ImageConfiguration configuration) {
final Rect rect = Offset(offset.dx, offset.dy + configuration.size!.height - 8.0) &
Size(configuration.size!.width, 8.0);
final Paint paint = Paint()
..color = Colors.blue
..style = PaintingStyle.fill
..strokeWidth = 2.0;
canvas.drawRRect(
RRect.fromRectAndRadius(rect, Radius.circular(4.0)), paint);
}
}
```
然后,在 `TabBar` 中使用自定义的圆角指示器,示例如下:
```dart
TabBar(
indicator: CustomTabIndicator(),
tabs: [
Tab(text: 'Tab 1'),
Tab(text: 'Tab 2'),
Tab(text: 'Tab 3'),
],
)
```
以上示例中,自定义的指示器使用了蓝色的填充色,并且指示器下面有 8.0 高度的圆角。您可以根据自己的需要进行调整。
阅读全文