Our Xamarin forms app uses FlowListView to display a matrix of videos, using custom renderers.
In Android app, when changing the size of the matrix view, each view element / cell, regardless of the size, does FlowItemDisappearing and then FlowItemAppearing consistently. It works perfect.
iOS app's behaviour is different, only some elements in the matrix view do disappearing and appearing. How can I change this behaviour to the same one like Android app?
In my iOS app, I compared the events in OnElementChanged in the renderer with the events in FlowItemDisappearing and FlowItemAppearing, and found discrepancies between them. For example, after changing matrix size from 3x3 to 1 and then from 1 to 3x3, the following is observed: In OnElementChanged: 3x3-1: deleted first row, added new element 1, OK
1-3x3: recreated the elements 6-9 in 3rd row. The problems: 1. shouldn't need to update 3rd row; 2. the handles of element 2 and 3 were not updated, remaining 0.
3x3-1: deleted the elements in 2nd row. The video plays OK in single view. But the problem is now the handles for elements 2-6 become 0. It will be a problem for next transition 1-9.
In FlowListItem appearing / disappearing events:
3x3-1: disappearing view index 0-2 and appearing 0 (new element 1), correct
1-3x3: -(3-5), +(0-2), -(6,8), +(3-5), +(6-8), this says new elements in row 1, recreated elements in row 2 and 3. The problem: it doesn't match the events in OnElementChanged. It appears OnElementChanged missed events.
3x3-1: -(0-2), +(0) new element 1, correct
My problem is the handles of the sub views will go out of sync at the end. If each view element / cell in the new matrix disappears and then appears, there will be no problem at all. Every tile will be refreshed.