Replies: 2 comments 5 replies
-
That's not how appearance/layout changes work. When a mapper modifies a property which affects appearance/layout, the control's native invalidation mechanism is invoked (e.g., If a new control is initialized and a dozen properties are set on it all at once, each one of those property changes will trigger an invalidation. But that simply marks it as needing to be updated during the next pass; the actual visual updates all happen during that single pass. So a single property update on a single control means one layout pass. 10 property updates on 10 different controls still results in one layout pass.
[citation needed] Do you have any specific benchmarks of controls working slowly? We definitely want to know if anyone is experiencing particular performance issues so we can delve into them. |
Beta Was this translation helpful? Give feedback.
-
This one should not have been closed. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
MAUI handlers are an architecture choice that should impove performance over Xamarin renderers.
But the goal is only partially achieved.
MAUI handlers have removed the extra containers that were created, based on the success of the fast renderers on Android.
But MAUI handlers are also based on Mappers, to ease the customization of controls.
This last feature makes difficult for a handler to know when all the properties have been set/bound, so the control can start computing its size and its UI.
Instead, with the current way of things, when any mapper is called on a proprerty that changes its appearance, the control must redraw itself. Leading currently to one redraw per property in the mapper. Making the control very slow.
An improvement would be to have a method called on the handler after all the mappers were initially set, and after all the bindings were resolved (that can be 2 methods).
What do you think ?
Beta Was this translation helpful? Give feedback.
All reactions