2015-06-07 8 views
8

NativeScript için bir Rehber Listesi türü POC oluşturmaya çalışıyorum. Ve bir liste öğesinde bir görüntü ve isim olmasını istiyorum. Görünüşe göre, başlık değeri ince geliyorListView.itemTemplate ve NativeScript'teki Resimler

<Page loaded="pageLoaded"> 
    <ListView items="{{ myItems }}"> 
     <ListView.itemTemplate> 
      <Image src="{{ imageSrc }}" /> 
      <Label text="{{ title }}" /> 
     </ListView.itemTemplate> 
    </ListView> 
</Page> 

şöyle ben düzeni için kullanıyorum kodudur, ancak görüntü hiç görünmüyor. Aynı Görüntü kodunu boş bir sayfaya koymaya çalıştığımda, NativeScript sayfayı görüntü ile oluşturur.

Listede neden görüntünün liste görünümünde görünmediğini söyleyen var mı? Ve nasıl görüntülenebilir?

Teşekkürler

+0

gözlemlenebilir veri yapısı (myItems) ile nesneler dizisi midir: En basit JS (gelecekte bu bakan herkes için)

kod tamamlama için
<Page xmlns="http://www.nativescript.org/tns.xsd" loaded="onPageLoaded"> <ListView id="listview" items="{{ myItems }}"> <ListView.itemTemplate> <StackLayout orientation="horizontal"> <Label text="{{ title }}" /> <Image src="{{ src }}" stretch="none" /> </StackLayout> </ListView.itemTemplate> </ListView> </Page> 

nesne {imageSrc: "blah.png", başlık: "blah blah blah blah"} – Nathanael

+0

yerel bir resim mi yoksa uzak bir mi (http)? – antoine129

+0

yes @Nathanael, bu nesnenin bir dizisidir. – Shhhhh

cevap

15

Bunu test ettim; İç öğeleri bir mizanpaja yerleştirmeniz gerekiyor. Ben itemTemplate sadece bir çocuk olabilir inanıyorum. Tüm testlerim itemTemplate'in tek bir çocuğa işaret ettiğini gösteriyor.

Bu, tek bir çocuk iki öğenizi de içeren bir StackLayout olduğu için iyi çalışır.

XML:

var observableArray = require("data/observable-array"); 
function onPageLoaded(args) { 
    var page = args.object; 
    var array = new observableArray.ObservableArray(); 

    array.push({title: "Title1", src: 'http://master-technology.com/images/Logo1.gif')}); 
    array.push({title: "Title2", src: 'http://master-technology.com/images/demos/Apps-TurnItOffLogo.gif')}); 

    page.bindingContext = {myItems: array}; 
} 
exports.onPageLoaded = onPageLoaded; 
+0

Çözümleriniz mükemmel bir şekilde çalıştı. Teşekkürler!! Hala burada ObservableArray() gereksinimini anlamıyorum. – Shhhhh

+1

ObservableArray'ın tek amacı, değişiklikleri canlı olarak yapabilmeniz ve güncellemeleri yapabilmenizdir. Gözlemlenebilir kullandığınız herhangi bir ciltleme yaptığınızda, iki yönlü değiştirilebilmeniz önerilir. Ancak, listenin sık sık güncellenmeyeceğini istiyorsanız sadece düz bir dizi kullanabilirsiniz. – Nathanael

+0

Anladım. Bu mantıklı. – Shhhhh