Possible to change repeater layout dynamically?



I would like to change the layout of a repeater from horizontal to vertical and add a wrap (or vice versa) based on a button click.

Is this possible?



Axure 8 had an excellent solution for this, which was the manual setting of adaptive views. Adaptive views are normally used to display differing layouts when resizing the browser window, but there is a Set Adaptive View command to override that.

You can’t change the vertical/horizontal/wrap properties of a repeater, but you can set these properties to differ for a given repeater in each adaptive view. So in Axure 8 you would set up two adaptive views, making sure that the only widget that differed in style/location across the views is the repeater, and then manually set the adaptive view through the Set Adaptive View command.

In Axure 9, the Set Adaptive View command is broken. Like in Axure 8, the values that you can apply to an adaptive view through the command are “Auto” (meaning, react on window resize), or to a specific view you defined. But unlike in Axure 8, Axure 9 reverts to “Auto” when you resize the window! Completely broken.

That said, if this is a prototype you are physically presenting, or you are in a controlled environment like a usability test where you can prevent the subject from resizing the window – say, by maximizing the window – this solution will suit your purposes for Axure 9.

Attached is a sample. (Note that the “Base” adaptive view is initially set on page load.) Just don’t resize the window…

broken-v9-adaptive view.rp (50.7 KB)