如何在颤振中使用自定义颜色实现自定义点状 Tab 指示器

时间:2021-03-10 05:36:08

标签: android flutter flutter-layout tabbar

我想实现点状标签指示器。 (即,小圆圈)喜欢下图的自定义颜色。

Refer this image

请帮忙解决这个问题。

2 个答案:

答案 0 :(得分:1)

您可以创建一个单独的小部件,将颜色和半径作为参数来实现这一点。

As Referred from here

indicator 参数需要一个装饰,所以我们应该创建一个 BoxPainter

import 'package:flutter/material.dart';

class CircleTabIndicator extends Decoration {
 final BoxPainter _painter;

 CircleTabIndicator({@required Color color, @required double radius})
    : _painter = _CirclePainter(color, radius);

 @override
 BoxPainter createBoxPainter([onChanged]) => _painter;
}

class _CirclePainter extends BoxPainter {
 final Paint _paint;
 final double radius;

 _CirclePainter(Color color, this.radius)
    : _paint = Paint()
  ..color = color
  ..isAntiAlias = true;

@override
void paint(Canvas canvas, Offset offset, ImageConfiguration cfg) {
   final Offset circleOffset =
      offset + Offset(cfg.size.width / 2, cfg.size.height - radius - 5);
   canvas.drawCircle(circleOffset, radius, _paint);
 }

}

并将其用作

 indicator: CircleTabIndicator(color: Colors.white, radius: 3),

答案 1 :(得分:1)

如果您想简化您的工作,那么您可以使用 this 包,通过使用此 package,您可以自定义选项卡 indicator< /p>

这里 下面是我在我的一个项目中使用的相同示例Code,并且可以通过点{{1 }}.

请参阅以下代码中的 indicator 部分:-

indicator