簡體   English   中英

本機ListView

[英]Nativescript ListView

我可以在布局內添加ListView嗎?

我有這個觀點:

function pageLoaded(args) {
    var page = args.object;
    var array = new observableArray.ObservableArray();
    array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
    array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
    array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
    array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
    array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
    array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
    page.bindingContext = vmModule.mainViewModel, {"myItems": array};
};

exports.pageLoaded = pageLoaded;

和這個模板:

<GridLayout>
<TabView>
    <TabView.items>
        <TabViewItem title="Nearest Wifi">
            <TabViewItem.view>
                <GridLayout>
                     <ListView items="{{ myItems }}">
                        <ListView.itemTemplate>
                            <GridLayout columns="*,*" rows="2">
                               <Label col="0" row="0" text="{{ city || 'Downloading...' }}" textWrap="true" class="title" />
                               <Label col="1" row="0" text="{{ distance || 'Downloading...' }}" textWrap="true" class="title" />
                               <Label col="0" row="1" colspan="2" text="Votes: {{nr_votes | 0 }}"/>
                            </GridLayout>
                        </ListView.itemTemplate>
                     </ListView>
                </GridLayout>
            </TabViewItem.view>
        </TabViewItem>

...

我試圖使其工作3個小時..任何幫助將不勝感激。 謝謝!

該代碼運行良好,我相信這是您的追求:

<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="pageLoaded">

  <ActionBar title="Cities - WIFI" />

  <TabView>
    <TabView.items>
        <TabViewItem title="Nearest Wifi">
            <TabViewItem.view>
                <ListView items="{{ cities }}">
                    <ListView.itemTemplate>
                        <GridLayout columns="*,*,*" rows="*,*">
                            <Label col="0" row="0" text="City"/>
                            <Label col="1" row="0" text="Distance" />
                            <Label col="2" row="0" text="Votes" />

                            <Label col="0" row="1" text="{{city}}" />
                            <Label col="1" row="1" text="{{distance}}" />
                            <Label col="2" row="1" text="{{votes}}" />
                        </GridLayout>
                    </ListView.itemTemplate>
                </ListView>
            </TabViewItem.view>
        </TabViewItem>
    </TabView.items>
  </TabView>
</Page>

使用Javascript:

var Observable = require("data/observable").Observable;
var ObservableArray = require("data/observable-array").ObservableArray;

function pageLoaded(args) {
    var page = args.object;
    page.bindingContext = pageData;
}
exports.pageLoaded = pageLoaded;

var pageData = new Observable({
    cities: new ObservableArray([
        {city:"Madrid", distance:"0.2km",votes:"0"},
        {city:"Madrid", distance:"0.2km",votes:"0"},
        {city:"Madrid", distance:"0.2km",votes:"0"}
    ])
})

如果要迭代數據,這就是這種方式。 您可以將array.push行放入for循環或任何您想要的地方。

XML:

 <ListView items="{{ cities }}">
                <ListView.itemTemplate>
                    <GridLayout columns="*,*,*" rows="*,*">
                        <Label col="0" row="0" text="City"/>
                        <Label col="1" row="0" text="Distance" />
                        <Label col="2" row="0" text="Votes" />

                        <Label col="0" row="1" text="{{city}}" />
                        <Label col="1" row="1" text="{{distance}}" />
                        <Label col="2" row="1" text="{{votes}}" />
                    </GridLayout>
                </ListView.itemTemplate>
            </ListView>

JS:

var array = new ObservableArray();

array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
array.push({"city":"Madrid","distance":"0.2km","votes":"0"});
array.push({"city":"Madrid","distance":"0.2km","votes":"0"});

var pageData = new Observable({cities: array});

page.bindingContext = pageData;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM