Have you seen all of the free code samples available on our Marketplace?

NativeScript Core


The Repeater widget allows you to display a collection of data, which is present in an array.

const repeaterModule = require("tns-core-modules/ui/repeater");


The example shows how to define Repeater in the XML and hoe to load its data.

<Label row="0" text="Binding the Repeater items property to collection" textWrap="true" />
<Button row="1" text="Add new item" tap="onTap" />
<ScrollView row="2">
    <Repeater  id="firstRepeater" items="{{ myItems }}" />
<Label row="3" text="Define the Repeater itemTemplate property" textWrap="true" />
<Button row="4" text="Add new item (Second Repeater)" tap="onSecondTap" />
<ScrollView row="5" orientation="horizontal">
    <Repeater items="{{ mySecondItems }}">
            <StackLayout orientation="horizontal" />
            <Label text="{{ $value }}" margin="10" />
const colors = ["red", "green", "blue"];
const secondColorsArray = new observableArrayModule.ObservableArray(["red", "green", "blue"]);
function onNavigatingTo(args) {
    const page = args.object;
    const vm = new observableModule.Observable();

    vm.set("myItems", colors);
    vm.set("mySecondItems", secondColorsArray);

    page.bindingContext = vm;

Note: Note, that changing the array after the repeater is shown will not update the UI. You can force-update the UI using the refresh() method.

// Manually trigger the update so that the new color is shown.

Note: When using ObservableArray the repeater will be automatically updated when items are added or removed form the array.

// The Repeater will be updated automatically.

Improve this document

Demo Source

Code Behind

In the following example is shown, how to create Repeater via Code-behind

<StackLayout id="stackLayoutId">
        <Label text="{{ 'Result: ' + prResult}}" textWrap="true" />

function onPageLoaded(args) {
    const page = args.object;
    const stackLayoutContainer = page.getViewById("stackLayoutId");
    const secondColorsArray = new observableArrayModule.ObservableArray(["red", "green", "blue"]);

    const repeater = new repeaterModule.Repeater();
    const stackLayout = new stackLayoutModule.StackLayout();
    stackLayout.orientation = "horizontal";
    repeater.itemsLayout = stackLayout;
    repeater.items = secondColorsArray;


exports.onPageLoaded = onPageLoaded;

Improve this document

Demo Source

API Reference for Repeater Class