mirror of
https://github.com/XCharts-Team/XCharts.git
synced 2026-05-23 09:20:08 +00:00
增加GridLayout网格布局组件
This commit is contained in:
@@ -189,8 +189,7 @@ namespace XCharts.Runtime
|
||||
serie.context.dataMax = serie.yMax;
|
||||
serie.context.startAngle = GetStartAngle(serie);
|
||||
var runtimePieDataTotal = serie.yTotal;
|
||||
|
||||
SerieHelper.UpdateCenter(serie, chart.chartPosition, chart.chartWidth, chart.chartHeight);
|
||||
SerieHelper.UpdateCenter(serie, chart);
|
||||
float startDegree = serie.context.startAngle;
|
||||
float totalDegree = 0;
|
||||
float zeroReplaceValue = 0;
|
||||
|
||||
@@ -193,7 +193,7 @@ namespace XCharts.Runtime
|
||||
private void UpdateRuntimeData()
|
||||
{
|
||||
var data = serie.data;
|
||||
SerieHelper.UpdateCenter(serie, chart.chartPosition, chart.chartWidth, chart.chartHeight);
|
||||
SerieHelper.UpdateCenter(serie, chart);
|
||||
var ringWidth = serie.context.outsideRadius - serie.context.insideRadius;
|
||||
for (int j = 0; j < data.Count; j++)
|
||||
{
|
||||
|
||||
@@ -246,6 +246,7 @@ namespace XCharts.Runtime
|
||||
[SerializeField] private int m_PolarIndex = 0;
|
||||
[SerializeField] private int m_SingleAxisIndex = 0;
|
||||
[SerializeField] private int m_ParallelIndex = 0;
|
||||
[SerializeField][Since("v3.8.0")] private int m_GridIndex = -1;
|
||||
[SerializeField] protected int m_MinShow;
|
||||
[SerializeField] protected int m_MaxShow;
|
||||
[SerializeField] protected int m_MaxCache;
|
||||
@@ -477,6 +478,15 @@ namespace XCharts.Runtime
|
||||
set { if (PropertyUtil.SetStruct(ref m_ParallelIndex, value)) SetAllDirty(); }
|
||||
}
|
||||
/// <summary>
|
||||
/// Index of layout component that serie uses.
|
||||
/// |所使用的 layout 组件的 index。 默认为-1不指定index, 当为大于或等于0时, 为第一个layout组件的第index个格子。
|
||||
/// </summary>
|
||||
public int gridIndex
|
||||
{
|
||||
get { return m_GridIndex; }
|
||||
set { if (PropertyUtil.SetStruct(ref m_GridIndex, value)) SetAllDirty(); }
|
||||
}
|
||||
/// <summary>
|
||||
/// The min number of data to show in chart.
|
||||
/// |系列所显示数据的最小索引
|
||||
/// </summary>
|
||||
|
||||
@@ -310,7 +310,7 @@ namespace XCharts.Runtime
|
||||
m_SerieLabelRoot.hideFlags = chart.chartHideFlags;
|
||||
SerieLabelPool.ReleaseAll(m_SerieLabelRoot.transform);
|
||||
int count = 0;
|
||||
SerieHelper.UpdateCenter(serie, chart.chartPosition, chart.chartWidth, chart.chartHeight);
|
||||
SerieHelper.UpdateCenter(serie, chart);
|
||||
for (int j = 0; j < serie.data.Count; j++)
|
||||
{
|
||||
var serieData = serie.data[j];
|
||||
@@ -402,7 +402,7 @@ namespace XCharts.Runtime
|
||||
SerieLabelPool.ReleaseAll(serieTitleRoot.transform);
|
||||
ChartHelper.RemoveComponent<Text>(serieTitleRoot);
|
||||
|
||||
SerieHelper.UpdateCenter(serie, chart.chartPosition, chart.chartWidth, chart.chartHeight);
|
||||
SerieHelper.UpdateCenter(serie, chart);
|
||||
|
||||
if (serie.titleJustForSerie)
|
||||
{
|
||||
|
||||
@@ -213,9 +213,22 @@ namespace XCharts.Runtime
|
||||
/// </summary>
|
||||
/// <param name="chartWidth"></param>
|
||||
/// <param name="chartHeight"></param>
|
||||
public static void UpdateCenter(Serie serie, Vector3 chartPosition, float chartWidth, float chartHeight)
|
||||
public static void UpdateCenter(Serie serie, BaseChart chart)
|
||||
{
|
||||
if (serie.center.Length < 2) return;
|
||||
var chartPosition = chart.chartPosition;
|
||||
var chartWidth = chart.chartWidth;
|
||||
var chartHeight = chart.chartHeight;
|
||||
if (serie.gridIndex >= 0)
|
||||
{
|
||||
var grid = chart.GetChartComponent<GridCoord>(serie.gridIndex);
|
||||
if (grid != null)
|
||||
{
|
||||
chartPosition = grid.context.position;
|
||||
chartWidth = grid.context.width;
|
||||
chartHeight = grid.context.height;
|
||||
}
|
||||
}
|
||||
var centerX = serie.center[0] <= 1 ? chartWidth * serie.center[0] : serie.center[0];
|
||||
var centerY = serie.center[1] <= 1 ? chartHeight * serie.center[1] : serie.center[1];
|
||||
serie.context.center = chartPosition + new Vector3(centerX, centerY);
|
||||
@@ -820,7 +833,7 @@ namespace XCharts.Runtime
|
||||
serie.m_FilterMinShow = dataZoom.minShowNum;
|
||||
serie.m_NeedUpdateFilterData = false;
|
||||
|
||||
if(ReferenceEquals(serie.m_FilterData,data))
|
||||
if (ReferenceEquals(serie.m_FilterData, data))
|
||||
{
|
||||
serie.m_FilterData = new List<SerieData>();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user