Dynamically adding Text or Pictures to a Repeater Widget

advanced-prototyping
repeater-widget

#1

First of all thanks for all the contributions and solved questions, they helped me alot!
In my project i’m looking for a solution in which i can dynamically (depending on which button I click) add a picture, text or even a video to a repeater. So if for example I click the button “Pictures” the repeater should add three pictures I have choosen before, then I click the button “Text”, a text field is added and now the repeater should show the three pictures and the text! Thank you for your help

Greetings


#2

This is very straightforward.

One limitation of Axure is that you cannot add elements dynamically - it all has to be hardwired (other then the number of cells in a repeater)

The solution then is to have all the elements in the repeater design-time cell, laid-out how you’d like them if all were switched on at the same time, and then to hide the ones which are optional. For cases where you have mutually-exclusive (either-or) selections between widget groups, use a dynamic panel to switch between the groups of widgets that you want to display.

If the layout needs to change depending on which ones are turned on/off, then you can either make use of the “push/pull widgets” sub-option when you “Show” each widget, to move others into the right place, or alternatively create some interaction code that evaluates which widgets are currently visible and issues individual Move()/Size() interactions to each widget, such that everything shifts into the right positions.

It’s pretty satisfying when you’ve got this all working smoothly - especially if you throw a couple of tasteful animations into the mix as well.

Note also in repeaters that hidden widgets do not count as part of the size of each repeater cell, so you can either rely on this default behaviour to have things auto resize, or if this is not what you want, you can fix the size of the repeater cell so that each one always occupies the same space.

Hope that helps,
Jeremy.