【问题标题】:NativeScript Telerik-UI using ListViewStaggeredLayout for images in RadListViewNativeScript Telerik-UI 对 RadListView 中的图像使用 ListViewStaggeredLayout
【发布时间】:2016-11-28 19:19:31
【问题描述】:

我有一个使用 Telerik-UI 的 NativeScript/Angular2 应用程序,当我尝试在 RadListView 中使用 ListViewStaggeredLayout 指令显示图像时,我得到一个空白页。使用相同的代码显示文本可以正常工作,即 2 列和交错布局。使用 ListViewGridLayout 显示图像也可以。我已经看到旧的 Telerik 文档显示这是/可以使用图像,但我不知道要设置什么。 HTML 代码如下。谢谢。

<RadListView [items]="pictures">
    <template tkListItemTemplate let-item="item">
        <GridLayout>
            <Image col="0" src="{{ 'res://listview/layouts/' + item.photo + '.jpg' }}" stretch="aspectFill" loadMode="async"></Image>
            <!-- <Label col="0" [text]="item.title" textWrap="true"></Label> -->
        </GridLayout>
    </template>
    <ListViewStaggeredLayout tkListViewLayout scrollDirection="Vertical" spanCount="2" itemWidth="180"></ListViewStaggeredLayout>
    <!-- <ListViewGridLayout tkListViewLayout scrollDirection="Vertical" itemHeight="200" spanCount="2"></ListViewGridLayout> -->
</RadListView>

【问题讨论】:

    标签: angular telerik-grid nativescript nativescript-telerik-ui


    【解决方案1】:

    您似乎对tkListItemTemplate 中的Imagesrc 使用了非Angular 2 绑定语法({{ ... }})。只需将其更改为[src]="'res://listview/layouts/' + item.photo + '.jpg'" 之类的东西,一切都应该正常工作。或者甚至更好地删除硬编码的res://listview/layouts/'.jpg' 并将它们添加到“数据项对象的 .photo 属性”中,在绑定中使用这样的硬编码字符串不是一个好方法。

    我已使用此模板对此进行了测试,一切正常:

    <GridLayout>
        <RadListView [items]="staggeredItems">
            <template tkListItemTemplate let-item="item">
                <GridLayout class="listItemTemplateGrid">
                    <Image [src]="item.image" stretch="aspectFill"></Image>
                    <GridLayout verticalAlignment="bottom">
                        <StackLayout class="labelsStackLayout">
                            <Label [text]="item.title"></Label>
                            <Label [text]="item.description"></Label>
                        </StackLayout>
                    </GridLayout>
                </GridLayout>
            </template>
    
            <ListViewStaggeredLayout tkListViewLayout scrollDirection="Vertical" spanCount="3"></ListViewStaggeredLayout>
        </RadListView>
    </GridLayout>
    

    staggeredItems 属于此类:

    export class DataItem {
        constructor(public description?: string, public title?: string,  public image?: string) {
        }
    }
    

    【讨论】:

    • 谢谢弗拉基米尔。我尝试过 [src]="item.image" 的角度方式,但根据您的 cmets,我会坚持下去。直接尝试您的代码后,我意识到图像标签上的 loadMode='async' 属性正在造成问题。当我从交错布局中删除它时,图像会正确显示,但是当包含时,视图仍然是空白的。我想使用 loadMode='async' 因为初始加载时图像的滚动和流动更加顺畅。 W/out loadMode='async' 第一次通过图像滚动有点小故障,但此后滚动平滑。关于带交错布局的 loadMode 有什么想法吗?
    猜你喜欢
    • 2017-03-10
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    相关资源
    最近更新 更多