Ran into this issue - which seems to be dependent on how the content gets rendered, so it will fail 100% of the time on specific configurations, resulting in unusable applications.
I've found this issue on Android but there's no telling if the issue is cross platform - as it may depend on item sizings and layout, it may also be reproducible on other platforms, I just haven't hit it yet. The device you run it on may also influence the result, as different resolutions and scalings will impact how items are rendered on screen. I've reproduced this on a Pixel 7 (real device), Samsung A21s (real device) and Pixel 7 Pro (emulator).
Repro steps
MainPage.xaml - use this as the page content:
<ScrollView Padding="15,0,15,15">
<VerticalStackLayout Spacing="25">
<telerik:RadWrapLayout
x:Name="BrokenLayout"
Margin="-5"
SizeChanged="BrokenLayout_SizeChanged"
StretchLastChild="False">
<BindableLayout.ItemTemplate>
<DataTemplate>
<Grid
Margin="3.75"
Padding="3.75"
BackgroundColor="LightGreen">
<Label
FontAttributes="Bold"
FontSize="11"
LineBreakMode="TailTruncation"
MaxLines="2"
Text="{Binding}"
VerticalOptions="End" />
</Grid>
</DataTemplate>
</BindableLayout.ItemTemplate>
</telerik:RadWrapLayout>
</VerticalStackLayout>
</ScrollView>
MainPage.xaml.cs code
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
List<string> items = new List<string>();
items.Add("TSONE");
items.Add("N ANCETOIDO");
items.Add("ADDKNEDEGO LW");
items.Add("A EFCTTLIAH");
items.Add("OHACP HTATTO");
items.Add("AASESII NAYXB/RFKL");
items.Add("EMIQULENOCE PTCTL");
items.Add("SCNSTUGRRIOEMA TEU");
items.Add("EPEENSX");
items.Add("BRUXEROL TAA");
items.Add("TVLRETAAX ER");
items.Add("SMA SELISD");
items.Add("NIAEGOEEATIRUPR SVT");
items.Add("CTPLRCELT AO");
items.Add("REAREPTIRDQ U");
items.Add("ASEDP TUR");
items.Add("CJTEUT ORPDEAP");
items.Add(" CECCRNTARODTO");
items.Add("- FLEOUTEQRUOPWSL");
items.Add("PINTRNMEU REEQTU");
items.Add("RE LWSRANKOGIO TNT");
items.Add("KAREBTA KE");
items.Add("ITTANIW MIEG"); // comment out this one and it'll run fine. keep it and it'll fail.
BindableLayout.SetItemsSource(this.BrokenLayout, items);
}
private double _width = 0;
private double minItemWidth = 110.0;
private double maxItemWidth = 160.0;
private void BrokenLayout_SizeChanged(object sender, EventArgs e)
{
if (sender is RadWrapLayout wl
&& wl.Width > 0
&& (int)Math.Floor(wl.Width) is int widthInt
&& widthInt != this._width)
{
this._width = widthInt;
double? candidateItemWidth = null;
var itemCount = wl.Children.Count;
if (itemCount > 0 && itemCount * maxItemWidth >= widthInt)
{
var columnCount = (int)Math.Ceiling(widthInt / maxItemWidth);
candidateItemWidth = (int)Math.Floor((double)widthInt / columnCount);
if (candidateItemWidth > 1.25 * maxItemWidth)
{
columnCount += 1;
candidateItemWidth = (int)Math.Floor((double)widthInt / columnCount);
}
else if (candidateItemWidth < minItemWidth)
{
columnCount -= 1;
candidateItemWidth = (int)Math.Floor((double)widthInt / columnCount);
}
}
wl.ItemWidth = candidateItemWidth ?? maxItemWidth;
}
}
}
Error:
System.ArgumentOutOfRangeException: 'Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')'
0xFFFFFFFFFFFFFFFF in Android.Runtime.RuntimeNativeMethods.monodroid_debugger_unhandled_exception C#
0x1A in Android.Runtime.JNINativeWrapper._unhandled_exception at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:12,5 C#
0x26 in Android.Runtime.JNINativeWrapper.Wrap_JniMarshal_PPZIIII_V at /Users/runner/work/1/s/xamarin-android/src/Mono.Android/Android.Runtime/JNINativeWrapper.g.cs:441,26 C#
0x8 in System.ThrowHelper.ThrowArgumentOutOfRange_IndexMustBeLessException C#
0x9 in System.Collections.Generic.List<double>.get_Item C#
0x205 in Telerik.Maui.RadWrapLayoutManager.ArrangeChildren C#
When setting GroupAggregatesAlignment NextToHeader and the column size mode is stretch or auto, the aggregates text in the group header is misaligned, part of the text enters in next column when data changes.
When the control is scrolled, some cell is edited or some other operation is applied, the text is displayed as expected.
A NullReferenceException is thrown during the measure phase of a DataGridTextColumn when a CellRenderer is applied:
Object reference not set to an instance of an object.When navigating to a page with a RadRichTextEditor, it sometimes pops up an error on page load. It is inconsistent, but I attached an example gif. The xaml on the page I'm navigating to is basic:
<Grid Margin="20">
I believe this problem started with MAUI version 9.0.70. Possibly with one of these changes:
https://github.com/dotnet/maui/pull/27003/files
https://github.com/dotnet/maui/pull/28354/files
We're noticing issues related to grid load. We're observing the flickering of the data grid on launch.
In some cases, the grid would stay blank and won't recover until the window is resized (which would trigger repainting of the grid).
The behavior occurs with 11.0.0 version and above. With 10.1.0 no issues.
In popup mode when scaling is 75%, tapping outside close to the view border does not work, the control keeps the width and height as in 100%
in drop down mode the drop-down is not close to the picker, there is a height between them.
Regression of the following issue: Pickers: [Android] Do not display in a Shell modal page in Net 9 project
The issue happens in Telerik MAUI 11.0.0, in 10.0.0 no issues