ListView.itemTemplate和NativeScript中的图像

Shh*_*hhh 9 listview nativescript

我正在尝试为NativeScript构建联系人列表类型POC.我希望在列表项中有一个图像和名称.我用于布局的代码如下

<Page loaded="pageLoaded">
    <ListView items="{{ myItems }}">
        <ListView.itemTemplate>
            <Image src="{{ imageSrc }}" />
            <Label text="{{ title }}" />
        </ListView.itemTemplate>
    </ListView>
</Page>
Run Code Online (Sandbox Code Playgroud)

显然,标题值很好,但图像根本没有出现.当我尝试将相同的图像代码放在空白页面中时,NativeScript使用图像构建页面.

任何人都可以告诉我为什么图像不会出现在列表视图模板中?它怎么能显示出来?

谢谢

Nat*_*ael 16

我测试了这个; 您需要将内部项目放在布局中.我相信itemTemplate只能是一个孩子.我的所有测试似乎都表明itemTemplate指向一个孩子.

所以这可以正常工作,因为单个子项是StackLayout,然后包含您的两个项目.

XML:

<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>
Run Code Online (Sandbox Code Playgroud)

对于代码完成(对于将来看这个的人来说)最简单的JS:

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;
Run Code Online (Sandbox Code Playgroud)