Completed
Last Updated: 12 Sep 2024 12:05 by Nico
Nico
Created on: 08 Mar 2024 11:01
Category: ListView
Type: Bug Report
0
ListView: [iOS] [MacCatalyst] Crash on certain height

It took me about 2 days, but finally i've reached out a repo out of the real world app, where the iOS RadListView crashes the app.

Start this repo app on a iPhone 15 Simulator:
https://github.com/baaaaif/TelerikListViewCrash

The ListView crashes the app when the cell is quite high and the height of the list and the height of the cell reach a certain (unknown) ratio

This is in the logs right before the crash :
Native Crash Reporting

TelerikListViewCrash : -[TKListViewLayoutChange applyToAll:]
	0x1023126e0 - /Users/nicokuenzler/Library/Developer/CoreSimulator/Devices/47FE3DF0-D39D-427A-9E82-0FCD7B14D208/data/Containers/Bundle/Application/88F8A1C5-46EB-4C80-A80D-A2699030842A/TelerikListViewCrash.app/TelerikListViewCrash : -[TKListViewLayoutChangeManager optimize]
	0x10237e174 - /Users/nicokuenzler/Library/Developer/CoreSimulator/Devices/47FE3DF0-D39D-427A-9E82-0FCD7B14D208/data/Containers/Bundle/Application/88F8A1C5-46EB-4C80-A80D-A2699030842A/TelerikListViewCrash.app/TelerikListViewCrash : -[TKListViewLinearLayout layoutAttributesForElementsInRect:]
	0x184a7f6c4 - /Library/Developer/CoreSimulator/Volumes/iOS_21C62/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : -[UICollectionViewData _layoutAttributesForElementsInRectForMapping:]
	0x185347778 - /Library/Developer/CoreSimulator/Volumes/iOS_21C62/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : -[_UICollectionViewDataAttributesMap _validateLayoutInRect:]
	0x184a81770 - /Library/Developer/CoreSimulator/Volumes/iOS_21C62/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : -[UICollectionViewData validateLayoutInRect:]
	0x184a824d4 - /Library/Developer/CoreSimulator/Volumes/iOS_21C62/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : -[UICollectionViewData layoutAttributesForElementsInRect:]
	0x184a444b4 - /Library/Developer/CoreSimulator/Volumes/iOS_21C62/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : -[UICollectionView _updateVisibleCellsNow:]
	0x184a451c8 - /Library/Developer/CoreSimulator/Volumes/iOS_21C62/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : -[UICollectionView _updateVisibleCellsNow:]
	0x184a49ec4 - /Library/Developer/CoreSimulator/Volumes/iOS_21C62/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 17.2.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : -[UICollectionView layoutSubviews]
	0x10240bce4 - /Users/nicokuenzler/Library/Developer/CoreSimulator/Devices/47FE3DF0-D39D-427A-9E82-0FCD7B14D208/data/Containers/Bundle/Application/88F8A1C5-46EB-4C80-A80D-A2699030842A/TelerikListViewCrash.app/TelerikListViewCrash : -[TKCollectionView layoutSubviews]

5 comments
Nico
Posted on: 12 Sep 2024 12:05

Hi Didi,

thx for updating on this.
I can confirm this works with the CollectionView Control :)

 

regards
Nico

ADMIN
Didi
Posted on: 12 Sep 2024 11:57

Hi Nico,

We have resolved this behavior by implementing a new control, CollectionView, which is a complete rewrite of the ListView from the ground up. CollectionView offers improved performance, enhanced features, and a modernized approach to managing lists of data. The CollectionView incorporates all key features of the ListView.

As this new control supersedes the ListView, this bug report will be closed. We recommend transitioning to CollectionView to take full advantage of its capabilities. Visit the following article that explains how to migrate to the new RadCollectionView.

Regards,
Didi
Progress Telerik

ADMIN
Didi
Posted on: 11 Mar 2024 16:54

Hi Nico, 

Yes in general the behavior is related to the native iOS ListView control and how the control measure and arrange the cells. I tested on android and on WinUI no issues, still on iOS and MacCatalyst the app terminates without exception. I have logged the issue internally and escalated to the dev team. 

I am afraid I cannot suggest another workaround for the concrete setup.

Regards,
Didi
Progress Telerik

A brand new ThemeBuilder course was just added to the Virtual Classroom. The training course was designed to help you get started with ThemeBuilder for styling Telerik and Kendo UI components for your applications. You can check it out at https://learn.telerik.com
Attached Files:
Nico
Posted on: 11 Mar 2024 15:57

Hi Didi,

thx for testing. Unfortunately there is not really much more, see the attached log.
It seems to be something on the native Telerik implementation, not in the .net part.

I've tried something like binding the HeightRequest on the Parent-Control or the Parent SizeChanged Events, but this doesn't work.
Only a fixed HeightRequest works, like you wrote, but this cannot be used in a real world app

regards
Nico

 

ADMIN
Didi
Posted on: 11 Mar 2024 15:36

Hi Nico,

Thank you for the provided project and stack-trace. I tested the app and reproduced the app termination, still no exception on my side. Then when I set a definitive height to the ContentView, the app works. It seems the behavior is related to dynamically sized the cells in the control. I replaced the RadListView with MAUI CollectionView and no issues. 

Could you please send me the complete stack-trace. What is the exact exception? 

Regards,
Didi
Progress Telerik

Love the Telerik and Kendo UI products and believe more people should try them? Invite a fellow developer to become a Progress customer and each of you can get a $50 Amazon gift voucher.