BaseChartPainter constructor

BaseChartPainter(
  1. ChartStyle chartStyle, {
  2. List<KLineEntity>? datas,
  3. required double scaleX,
  4. required double scrollX,
  5. required bool isLongPress,
  6. required double selectX,
  7. bool isOnTap = false,
  8. bool isShowMainState = true,
  9. MainState mainState = MainState.MA,
  10. bool volHidden = false,
  11. bool isTapShowInfoDialog = false,
  12. List<SecondaryState> secondaryStates = const [SecondaryState.MACD],
  13. bool isLine = false,
  14. List<TradeMark> tradeMarks = const [],
  15. 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();
}