ColumnSeries занимает много времени для рендеринга с использованием Syncfusion for Xamarin.Forms - PullRequest
0 голосов
/ 06 декабря 2018

Использование последней версии SfChart для Xamarin.Forms (16.3.0.36). Я столкнулся со следующей проблемой: ColumnSeries занимает много времени для отображения небольшой коллекции (более 10 секунд для сравнения нескольких записей) по сравнениюна LineSeries (менее 3 секунд для того же размера коллекции).

Фактически, используя отладчик, я обнаружил, что загрузка представления, содержащего диаграмму ColumnSeries, является наиболее трудоемкой частью, даже до того, как заданы данные для графика.Я использую LineSeries таким же образом, и он загружается намного быстрее.

Я использую следующий код для ColumnSeries:

            <chart:SfChart x:Name="SumChart1" Margin="5,0,10,0">
            <chart:SfChart.PrimaryAxis>
                <chart:DateTimeAxis Title="Time" EdgeLabelsDrawingMode="Center"
                                    IntervalType="{Binding IntervalType, Mode=TwoWay}"
                                    x:Name="SumAxis" />
            </chart:SfChart.PrimaryAxis>

            <chart:SfChart.SecondaryAxis>
                <chart:NumericalAxis Title="{Binding SelectedVariableForGraph.Name}" />
            </chart:SfChart.SecondaryAxis>

            <chart:ColumnSeries
                x:Name="SumSeries"
                Label="Sum"
                XBindingPath="Key"
                YBindingPath="Value"
                ItemsSource="{Binding SumGraph, Mode=TwoWay}"
                ListenPropertyChange="True"
            >
                <chart:ColumnSeries.ColorModel>
                    <chart:ChartColorModel>
                        <chart:ChartColorModel.CustomBrushes>
                            <Color>Orange</Color>
                        </chart:ChartColorModel.CustomBrushes>
                    </chart:ChartColorModel>
                </chart:ColumnSeries.ColorModel>
            </chart:ColumnSeries>
        </chart:SfChart>

Меня интересует только исправление версии Android.Я проверил проблему с помощью эмулятора Android HAXM и устройства Xiaomi Mi A1, с похожими результатами (устройство кажется только немного быстрее).

При поиске ответа на этот вопрос я обнаружил, что «SfChart рендеритпо умолчанию для столбцов в Android и iOS как для серии FastColumn "(https://www.syncfusion.com/forums/138607/fastcolumnbitmapseries-on-sfchart-xforms),, но в моем случае (для Android) это не работает.

Есть что-то, чего мне не хватает?

РЕДАКТИРОВАТЬ: Я использую SfTabItem, чтобы показать диаграмму (у меня есть 3 диаграммы ColumnSeries и 1 Series на странице). Ось X имеет тип DateTime, а ось Y имеет тип double. Эта деталь, кажется,вызывая проблему

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Я могу воспроизвести описанный сценарий с нашей стороны, и я хотел бы сообщить вам, что в вашей выборке вы указали только тип интервала в качестве дней для всех графиков, но связанные значения различаются, как месяцы и годы, так чторендеринг занимает слишком много времени.Потому что автоматический интервал рассчитывается, а сетка отображается для всех дней из многих лет.Таким образом, вы должны установить Interval и IntervalType на основе заданных данных, или вам нужно что-то установить, и диаграмма автоматически рассчитает интервал и тип интервала на основе данных.На основании этого мы изменили ваш образец, и его можно скачать по ссылке ниже.

образец

0 голосов
/ 08 декабря 2018

Мы не смогли воспроизвести сообщенную проблему с нашей стороны, и мы подготовили образец, и его можно загрузить по приведенной ниже ссылке.

Образец

Поскольку нам неизвестен точный сценарий приложения, мы не смогли воспроизвести эту проблему с нашей стороны, поэтому вы можете отозвать нас, изменив образец на основе вашего приложения вместе с процедурой репликации.Это поможет нам в дальнейшем расследовании и предоставит вам лучшее решение в ближайшее время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...