使用不同的对象/项填充列表视图

时间:2016-08-05 23:49:51

标签: listview nativescript

在Nativescript Listview中,是否可以使用多种类型的对象填充列表视图 - 每个对象都有自己独立的布局。

如果没有内置的ListView,那么telerik RadListView怎么样呢?

2 个答案:

答案 0 :(得分:1)

目前我认为没有明确的内置方式来执行不同的模板,例如ListView和RadListView中都没有分组(此功能在RadListView中仍在考虑中)。你可以继续尝试自己实现它,但它不会很漂亮。你可以这样做:

  • 创建代表您的“商品”的“商家数据”对象,并创建一个指示器属性,该属性将显示应使用哪个视觉(模板)
  • 之后,在包含X个不同“布局”的ListView或RadListView中声明您的模板,其中一个将被隐藏(通过其可见性)。
  • 根据“业务数据”对象的属性,切换作为自定义模板的X布局的可见性。

这是如何继续实现这样的“多个不同模板”的基本思路,当然还有其他方法可以使用。另外,请注意,最初所有布局都是“隐藏”的,以实现最佳性能。

答案 1 :(得分:0)

RadListView现在提供了多个项目模板的此功能。参见RadListView: Item template/templates: Using multiple item templates

看起来像这样:

<lv:RadListView items="{{ dataItems }}" itemTemplateSelector="{{ templateSelector }}">

    <lv:RadListView.itemTemplates>
        <template key="template1">
            <StackLayout orientation="vertical">
                ...
            </StackLayout>
        </template>
        <template key="template2">
            <StackLayout orientation="horizontal">
                ...
            </StackLayout>
        </template>
    </lv:RadListView.itemTemplates>

</lv:RadListView>