This repository has been archived by the owner on May 1, 2024. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of Change
This PR is for improving layouting (especially on scrolling) performance. Previously, we were using
ElmSharp.Box
internally for layouting. In normal case this works fine, but we found an issue where scrolling performance degrades as more controls are included in theScrollView
and the layout hierarchy gets more complex. For target devices with severe resource constraints, scrolling performance decreases more noticeably.To solve this problem, this PR implements and uses
EvasBox
(from evas) instead ofBox
(from elementary) to optimize unnecessary coordinate calculation during layout. As a result, it was confirmed that the scroll performance was improved by about 1 to 2 times compared to the previous one.You can use
FastLayoutRenderer
through opt-in as shown below. (The default isfalse
.)Limitations
EvasBox
, there may be functional restrictions such as focus movement and accessibility through key events. (It is not recommended when the focus is moved by key input on the remote control rather than by touch, such as on a TV device.)Issues Resolved
None
API Changes
namespace Xamarin.Forms
Added:
namespace Xamarin.Forms.Platform.Tizen
Added:
namespace Xamarin.Forms.Platform.Tizen.Native
Added:
Platforms Affected
Behavioral/Visual Changes
None
PR Checklist