我想使用
fl_chart
创建折线图,并且我需要工具提示背景根据触摸点更改颜色
例如颜色应该用这种方法确定
Color _getColor(List<int> intervals, double value) {
if (value >= intervals[0] && value < intervals[1]) {
return AppConstants.greenColor;
} else if (value >= intervals[1] && value < intervals[2]) {
return AppConstants.yellowColor;
}
return AppConstants.redColor;
}
当前代码:
LineTouchData(
touchTooltipData: LineTouchTooltipData(
tooltipBgColor: Colors.red,
fitInsideHorizontally: true,
fitInsideVertically: true,
tooltipRoundedRadius: 100,
getTooltipItems: (touchedSpots) {
return touchedSpots
.map(
(e) => LineTooltipItem(
e.y.toString(),
const TextStyle(),
),
)
.toList();
},
),
),
在最新版本的 fl_chart 中,用于背景框颜色的参数是:
getTooltipColor: (touchedSpot) => _getColor(intervals, value)
这意味着您的完整代码将是:
LineTouchData(
touchTooltipData: LineTouchTooltipData(
getTooltipColor: (touchedSpot) => _getColor(intervals, value),
fitInsideHorizontally: true,
fitInsideVertically: true,
tooltipRoundedRadius: 100,
getTooltipItems: (touchedSpots) {
return touchedSpots
.map(
(e) => LineTooltipItem(
e.y.toString(),
const TextStyle(),
),
)
.toList();
},
),
),