BaseChartPainter constructor
BaseChartPainter(
- ChartStyle chartStyle, {
- List<
KLineEntity> ? datas, - required double scaleX,
- required double scrollX,
- required bool isLongPress,
- required double selectX,
- bool isOnTap = false,
- bool isShowMainState = true,
- MainState mainState = MainState.MA,
- bool volHidden = false,
- bool isTapShowInfoDialog = false,
- List<
SecondaryState> secondaryStates = const [SecondaryState.MACD], - bool isLine = false,
- List<
TradeMark> tradeMarks = const [], - bool showTradeMarks = true,
Implementation
BaseChartPainter(
this.chartStyle, {
this.datas,
required this.scaleX,
required this.scrollX,
required this.isLongPress,
required this.selectX,
this.isOnTap = false,
this.isShowMainState = true,
this.mainState = MainState.MA,
this.volHidden = false,
this.isTapShowInfoDialog = false,
// this.secondaryState = SecondaryState.MACD,
this.secondaryStates = const [SecondaryState.MACD], // 初始化为默认值
this.isLine = false,
// 新增两个可选参数(给旧代码默认值不破坏)
this.tradeMarks = const [],
this.showTradeMarks = true,
}) {
mItemCount = datas?.length ?? 0;
mPointWidth = this.chartStyle.pointWidth;
mTopPadding = this.chartStyle.topPadding;
mBottomPadding = this.chartStyle.bottomPadding;
mChildPadding = this.chartStyle.childPadding;
mGridRows = this.chartStyle.gridRows;
mGridColumns = this.chartStyle.gridColumns;
mDataLen = mItemCount * mPointWidth;
// 针对每种 secondaryState 初始化默认的 max/min
mSecondaryMaxMap = {};
mSecondaryMinMap = {};
for (final st in secondaryStates) {
// mSecondaryMaxMap[st] = double.minPositive;//导致TRIX线无效
// mSecondaryMinMap[st] = double.maxFinite;
mSecondaryMaxMap[st] = -double.infinity; // 或 -double.maxFinite
mSecondaryMinMap[st] = double.infinity;
}
initFormats();
}