When trying to use virtualization on a list of items we are experiencing flickering / list reloads whenever any kind of data source is updated. In other words, it seems like the the action node “update object” makes the list reload regardless of what it updates. This is kind of critical as we use “on hover” with parallell execution on the items on the list to update app variables (see video).
Is this a known bug? Or is there something we can do to prevent it from happening?
Does this only happen when virtualization is turned on? Virtualization is generally useful when your custom list contains many hundred items and does not seem to be necessary if there are only 13.
However, this problem may be stemming from another cause. Are there any visibility rules triggered on hover?
The video was just an example. We have a customer who now has uploaded > 250 files in a single list. This is not a problem when Virtualization is off.
The action that runs when hovering is updating an app variable to hold the item being hovered, where this app variable controls visual conditions of a view container that shows some statistics about the (in this case) folder being hovered.
Even when this app variable is null and you run a action that updates it to null, it still flickers the list
If i turn off parallell execution on the action, it will not continuously flicker on the same item, but it still flickers when hovering over a new item.
We have experienced that we need parallell execution in order to display the right statistics when hovering fast between items
Just a comment related to the Action you are running “On hover”. If you only change a variable in this action, in order to change UI appearance: Have you tried Conditional Style with Event “Hover” on the container instead?
I do not understand how parallell execution of an action updating app variables could work. Wouldn’t those updates be conflicting? Is maybe updating a runtime property on the repeating objects an alternative approach?
We are using conditional styling to alter the appearance of the items in the list. The “on hover” action is used to control the data being displayed in a view container (see picture).
So when hovering an item on the left side of the picture, it alters the information displayed on the right side. Additionally, when hovering different types of items on the left side (e.g. folders, files), the view container on the right side changes between view based on what app variable has value.
Regarding the parallell execution:
In order to ensure that the correct information of the item being hovered is displayed on the right side even when hovering fast between different items, we found that parallell execution helped as it seems to override itself so it always displays the item you are currently hovering.
We previously had a problem where the action would not be fast enough, so it ended up displaying the wrong information on the right side.
I see. Sounds like you would need some kind of delay between the hover event and the execution of the action, i.e. so that the action is not executed for each row when dragging the mouse fast over 10 rows. That is supported in the “Transitions” section in the bottom part of the Styles menu for conditional styles but not for actions.
Update on this matter:
It seems like just having a action connected to the “On file drop” event handler (doesnt matter what action or if it does anything at all) makes a list with virtualization flicker. Can you follow up on this bug? We are coming to a point where it’s necessary for us to apply virtualization.
Just tested various setups with a custom vertical list with virtualization and “On file drop” and “On file hover” in a setup such as this, and it works like charm (no flickering, and it is virtualizing as it should)
Could you try to make a copy of that view or app, and remove functionality “one by one” on the iterating container to pinpoint what might be causing the issue?
Thanks for looking into this, i can investigate some more. The thing is that everything works until i connect an action to the “On file drop” event handler, even just an empty action. Could it be cause by the virtualized list being located within a visibility group? Could you try putting the list inside a visibility group and see if that recreates the flickering?
I’ve tried to add a Visibility Group outside the row-container as well as outside the whole repeating container, without being able to reproduce this.
Could you provide a few screenshots of the setup of this setup of these containers? E.g. the tree of containers, and the Properties of the container with the “enable virtualization” as well as the Properties/Styles of the container representing the row being virtualized (it would be nice to the the heigth-settings of this container)?
Also, regarding the visibility group(s) it would be nice to know it they are uncontrolled/controlled or if “Slide transition” is used.