mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-22 00:20:18 +00:00
修复当设置DataZoom的minShowNum时可能异常的问题
This commit is contained in:
@@ -390,6 +390,7 @@ namespace XCharts
|
||||
{
|
||||
var startIndex = (int)((data.Count - 1) * dataZoom.start / 100);
|
||||
var endIndex = (int)((data.Count - 1) * dataZoom.end / 100);
|
||||
if (endIndex < startIndex) endIndex = startIndex;
|
||||
if (startIndex != filterStart || endIndex != filterEnd || dataZoom.minShowNum != filterMinShow || m_NeedUpdateFilterData)
|
||||
{
|
||||
filterStart = startIndex;
|
||||
@@ -399,9 +400,17 @@ namespace XCharts
|
||||
if (m_Data.Count > 0)
|
||||
{
|
||||
var count = endIndex == startIndex ? 1 : endIndex - startIndex + 1;
|
||||
if (count < dataZoom.minShowNum) count = dataZoom.minShowNum;
|
||||
if (startIndex + count > m_Data.Count - 1) count = m_Data.Count - 1 - startIndex;
|
||||
filterData = m_Data.GetRange(startIndex, count);
|
||||
if (count < dataZoom.minShowNum)
|
||||
{
|
||||
if (dataZoom.minShowNum > m_Data.Count) count = m_Data.Count;
|
||||
else count = dataZoom.minShowNum;
|
||||
}
|
||||
if (startIndex + count > m_Data.Count)
|
||||
{
|
||||
int start = endIndex - count;
|
||||
filterData = m_Data.GetRange(start < 0 ? 0 : start, count);
|
||||
}
|
||||
else filterData = m_Data.GetRange(startIndex, count);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -966,6 +966,8 @@ namespace XCharts
|
||||
{
|
||||
var startIndex = (int)((data.Count - 1) * dataZoom.start / 100);
|
||||
var endIndex = (int)((data.Count - 1) * dataZoom.end / 100);
|
||||
if (endIndex < startIndex) endIndex = startIndex;
|
||||
|
||||
if (startIndex != m_FilterStart || endIndex != m_FilterEnd || dataZoom.minShowNum != m_FilterMinShow || m_NeedUpdateFilterData)
|
||||
{
|
||||
m_FilterStart = startIndex;
|
||||
@@ -973,11 +975,19 @@ namespace XCharts
|
||||
m_FilterMinShow = dataZoom.minShowNum;
|
||||
m_NeedUpdateFilterData = false;
|
||||
var count = endIndex == startIndex ? 1 : endIndex - startIndex + 1;
|
||||
if (count < dataZoom.minShowNum) count = dataZoom.minShowNum;
|
||||
if (count < dataZoom.minShowNum)
|
||||
{
|
||||
if (dataZoom.minShowNum > m_Data.Count) count = m_Data.Count;
|
||||
else count = dataZoom.minShowNum;
|
||||
}
|
||||
if (m_Data.Count > 0)
|
||||
{
|
||||
if (startIndex + count > m_Data.Count - 1) count = m_Data.Count - 1 - startIndex;
|
||||
m_FilterData = m_Data.GetRange(startIndex, count);
|
||||
if (startIndex + count > m_Data.Count)
|
||||
{
|
||||
int start = endIndex - count;
|
||||
m_FilterData = m_Data.GetRange(start < 0 ? 0 : start, count);
|
||||
}
|
||||
else m_FilterData = m_Data.GetRange(startIndex, count);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user