The exception is easily reproducible in SDK Browser on iOS and MacCatalyst. Start the LoadOnDemandCommand or LoadOnDemandEvent example to see the exception. The LoadOnDemandCollection seems to work correctly, however.
The ListViewLoadOnDemandCollection can be used instead of the command/event as a temporary workaround, until the bug gets fixed.
When setting margin to the elements in the template, the margin is not respected
I have a collection of items, and one of the properties notifies changes to the UI. ("BooleanProperty") I also bind to the SelectedItem property on the list view to toggle this bool property to true or false.
I have another property "Description" that I am sorting by. When sorting the ListView and select an item, the items with the same value are reordered.
The bug occurs on Android when removing an item from a group and using sticky group headers.
Changing the ItemsSource property of the ListView causes it to recreate its cells. The problem is that the existing cells are never reclaimed by the garbage collector, so the memory usage grows constantly. Eventually, the application can run out of memory, if the ItemsSource is updated too many times.
Note: It is possible the memory leak is caused by the bindings holding objects longer than necessary. Similar memory leaks can be reproduced with the .NET MAUI CollectionView as well. Here are a few GitHub issues for the CollectionView that might be related:
The bug can be reproduced quite easily with the SDK examples. Choose any ListView example from the LoadOnDemand category that uses LoadOnDemandMode set to Automatic, e.g. ListView/LoadOnDemand/LoadOnDemandEvent. Remove the initial items from the ItemsSource:
public ViewModel()
{
this.Source = new ObservableCollection<string>();
//for (int i = 0; i < 14; i++)
//{
// this.Source.Add(string.Format("Item {0}", i));
//}
this.LoadItemsCommand = new Command(this.LoadItemsCommandExecute);
}
Run the example to observe the exception almost immediately.
Hi Team,
Please expose the ScrollViewer, or expose a method on the RadListView that allows the developer to set a Y device-independent vertical position. Setting the Y value will trigger the internal/native scrollview to go to that position without any special animations or manipulation. Just a pure position set.
I need to be able to programmatically scroll to a specific position in the list. Yes, I am aware of the ScrollToItem methods, however that will not work in my case as I explicitly need the Y position (for acceleration and manipulation of the exact position).
As an example, here's how I am currently doing it for a ScrollView:
private async Task AutoScrollAsync()
{
while (!(this.ScrollVelocity == 0 || this.ScrollVelocity > 0 && this.IsScrolledToBottom() || this.ScrollVelocity < 0 && this.IsScrolledToTop()))
{
await this.scrollView.ScrollToAsync(0, this.CalculateNextScrollY(), false);
await Task.Delay(ScrollDelay);
}
this.StopScrolling();
}
I am hoping to be able to do the same thing for the RadListView.
Thank you,
Aaron
I tried to make an horizontal listview, using ListViewGridLayout. I want only one row with all the items from the collection.
I don't know how to set the SpanCount properly.
In the template, the image is not displayed (the function ImageResource is working in other control), only the Label is displayed.
<telerik:RadListView