使用不同的对象/项目填充listview
在Nativescript Listview中,是否可以使用多种类型的对象填充Listview?每个对象都有自己的单独布局使用不同的对象/项目填充listview,listview,nativescript,Listview,Nativescript,在Nativescript Listview中,是否可以使用多种类型的对象填充Listview?每个对象都有自己的单独布局 如果不在内置ListView中,那么telerik RadListView如何?这样可以吗?目前我认为没有一种明确的内置方式来处理不同的模板,例如ListView和RadListView中都没有分组(RadListView中仍在考虑此功能)。你可以尝试自己去实现它,但它不会很好。你可以这样做: <lv:RadListView items="{{ dataItems }
如果不在内置ListView中,那么telerik RadListView如何?这样可以吗?目前我认为没有一种明确的内置方式来处理不同的模板,例如ListView和RadListView中都没有分组(RadListView中仍在考虑此功能)。你可以尝试自己去实现它,但它不会很好。你可以这样做:
<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>
- 创建表示“项目”的“业务数据”对象,并创建一个指示器属性,该属性将显示应使用的视觉(模板)
- 然后在ListView或RadListView中声明模板,其中包含X个不同的“布局”,其中一个将被隐藏(通过其可见性)
- 根据“业务数据”对象的属性,切换自定义模板X布局的可见性
这是如何继续实现这种“多个不同模板”的基本思想,当然还有其他方法可以使用。在旁注中,确保最初所有布局都是“隐藏”的,以实现最佳性能。RadListView现在提供了多个项目模板的功能。看 看起来像这样:
<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>
...
...