Я пытался создать горизонтальный индикатор TouchedSpotIndicator на моем FlChart во флаттере, и я хочу, чтобы он оставался постоянно (а не только был виден при касании диаграммы) Аналогично эффекту текущей цены в торговых приложениях, например в приложении MT4, как показано ниже;
Ниже приведен мой код, но он показывает только вертикальную линию по умолчанию, а также исчезает после прикосновения к графику;
getTouchedSpotIndicator: (LineChartBarData barData, List<int> spotIndexes) {
return spotIndexes.map((spotIndex) {
final FlSpot spot = barData.spots[spotIndex];
if (spot.x == 0 || spot.x == 6) {
return null;
}
return TouchedSpotIndicatorData(
FlLine(color: Color(0xFFFFAB56), strokeWidth: 2.5, dashArray: [7]),
FlDotData(
show: true,
getDotPainter: (aa, bb, cc, dd) {
return FlDotCirclePainter(
color: Color(0xFFFFAB56),
radius: 7.5,
strokeWidth: 3.5,
strokeColor: Colors.white.withOpacity(0.5)
);
}
),
);
}).toList();
},
Я искал API FLChart и не нашел решения для создания индикатора; (1) постоянно виден (2) сделать индикатор горизонтальным.
Пожалуйста, предложите любую помощь, поскольку она будет оценена по достоинству. Спасибо за ваше время
Пробовали https://app.flchart.dev/#/line
?
Проверьте свойства индикатора на горизонтальной средней линии.
добавление следующего к LineChartData
в качестве параметра самого LineChart
устранило проблему;
LineChart(
lineChartData:
extraLinesData: ExtraLinesData(
horizontalLines: [
HorizontalLine(
y: value.currentLargeGraphPrice,
color: const Color(0xCA75C078),
strokeWidth: 1,
dashArray: [6, 3],
),
],
),
)
Вместо того, чтобы просто публиковать ссылку на документацию, этот ответ был бы лучше, если бы он конкретно объяснял, какие свойства устанавливать.