diff --git a/Assets/XCharts/Runtime/Component/Main/Tooltip.cs b/Assets/XCharts/Runtime/Component/Main/Tooltip.cs index a62a8273..e7396170 100644 --- a/Assets/XCharts/Runtime/Component/Main/Tooltip.cs +++ b/Assets/XCharts/Runtime/Component/Main/Tooltip.cs @@ -208,7 +208,7 @@ namespace XCharts /// /// 当前提示框所指示的Serie索引(目前只对散点图有效)。 /// - public Dictionary> runtimeSerieDataIndex { get; internal set; } + public Dictionary> runtimeSerieIndex { get; internal set; } /// /// The data index currently indicated by Tooltip. /// 当前提示框所指示的数据项索引。 @@ -261,7 +261,7 @@ namespace XCharts runtimeYValues = new float[2] { -1, -1 }, runtimeDataIndex = new List() { -1, -1 }, lastDataIndex = new List() { -1, -1 }, - runtimeSerieDataIndex = new Dictionary>() + runtimeSerieIndex = new Dictionary>() }; return tooltip; } @@ -458,7 +458,7 @@ namespace XCharts public void ClearSerieDataIndex() { - foreach (var kv in runtimeSerieDataIndex) + foreach (var kv in runtimeSerieIndex) { kv.Value.Clear(); } @@ -466,16 +466,16 @@ namespace XCharts public void AddSerieDataIndex(int serieIndex, int dataIndex) { - if (!runtimeSerieDataIndex.ContainsKey(serieIndex)) + if (!runtimeSerieIndex.ContainsKey(serieIndex)) { - runtimeSerieDataIndex[serieIndex] = new List(); + runtimeSerieIndex[serieIndex] = new List(); } - runtimeSerieDataIndex[serieIndex].Add(dataIndex); + runtimeSerieIndex[serieIndex].Add(dataIndex); } public bool isAnySerieDataIndex() { - foreach (var kv in runtimeSerieDataIndex) + foreach (var kv in runtimeSerieIndex) { if (kv.Value.Count > 0) return true; } diff --git a/Assets/XCharts/Runtime/Internal/Helper/TooltipHelper.cs b/Assets/XCharts/Runtime/Internal/Helper/TooltipHelper.cs index de0a4b46..8e1ba3d1 100644 --- a/Assets/XCharts/Runtime/Internal/Helper/TooltipHelper.cs +++ b/Assets/XCharts/Runtime/Internal/Helper/TooltipHelper.cs @@ -15,8 +15,8 @@ namespace XCharts private static void InitScatterTooltip(ref StringBuilder sb, Tooltip tooltip, Serie serie, int index, ThemeInfo themeInfo) { - if (!tooltip.runtimeSerieDataIndex.ContainsKey(serie.index)) return; - var dataIndexList = tooltip.runtimeSerieDataIndex[serie.index]; + if (!tooltip.runtimeSerieIndex.ContainsKey(serie.index)) return; + var dataIndexList = tooltip.runtimeSerieIndex[serie.index]; if (!string.IsNullOrEmpty(serie.name)) { sb.Append(serie.name).Append(FormatterHelper.PH_NN); @@ -222,7 +222,7 @@ namespace XCharts FormatterHelper.ReplaceContent(ref itemTitle, dataIndex, tooltip.numericFormatter, serie, series, themeInfo, category, dataZoom); sb.Append(itemTitle).Append(FormatterHelper.PH_NN); } - var dataIndexList = tooltip.runtimeSerieDataIndex[serie.index]; + var dataIndexList = tooltip.runtimeSerieIndex[serie.index]; foreach (var tempIndex in dataIndexList) { string content = itemFormatter; @@ -235,7 +235,7 @@ namespace XCharts } } } - else if (tooltip.runtimeDataIndex[serie.index] >= 0) + else if (IsNeedTooltipSerie(serie, tooltip)) { var serieData = serie.GetSerieData(dataIndex, dataZoom); if (serieData == null) continue; @@ -289,11 +289,23 @@ namespace XCharts } } + private static bool IsNeedTooltipSerie(Serie serie, Tooltip tooltip) + { + if (serie.type == SerieType.Pie || serie.type == SerieType.Radar || serie.type == SerieType.Ring) + { + return tooltip.runtimeDataIndex[serie.index] >= 0; + } + else + { + return true; + } + } + private static bool IsSelectedSerie(Tooltip tooltip, int serieIndex) { - if (tooltip.runtimeSerieDataIndex.ContainsKey(serieIndex)) + if (tooltip.runtimeSerieIndex.ContainsKey(serieIndex)) { - return tooltip.runtimeSerieDataIndex[serieIndex].Count > 0; + return tooltip.runtimeSerieIndex[serieIndex].Count > 0; } return false; }