我在同一页面上需要多个RadListViews,我使用的是NativeScript Angular
我不知道每个列表中的项目数,并且项目的大小可能会有很大不同,具体取决于项目所包含的文本数量。
可以这么说,我需要三个RadLists彼此叠加 - 第一个可能有3个项目,接下来的72个项目和最后9个项目。我希望每个列表都采用其内容要求的高度,因此无论它们有多长,我都可以将它们显示在彼此之上。
在Android上,它就像一个魅力 - 每个radlistview都占用了显示其项目所需的高度,并在之后生成下一个radlistview
另一方面,在iOS上,它是非常不同的 - 如果我没有设置RadListView本身的高度,它根本就不会显示。
我有两个RadListViews存在于GridLayout中,并给行一个绝对值,如row =“150,150”或甚至rows =“*,*”将显示尽可能多的列表,但我需要它是行=“自动,自动”,因为我不知道每个列表有多高,我想显示所有项目。
直接在RadListView上设置高度也可以,但是再次 - 我不知道高度。
直接在RadListView上设置height =“100%”并不能解决我的问题,因为我没有绝对的父高度。
那么这是可能的,或者我是否必须为高度属性计算一个数字(我真的不想这样做)
再次......问题仅存在于iOS设备上。
我已经尝试将dataItem作为ObservableArray和对象的简单数组类型:name [],因为我认为ObservableArray的异步性可能有一个角色可以发挥作用,但它没关系 - 我甚至可以填写文本具有常数的属性而不是。但是,如果行或RadListView本身没有设置高度 - 则不会显示任何内容。
每个问候
<GridLayout rows="auto, auto'>
<RadListView [items]=" dataItems">
<ng-template tkListItemTemplate let-item="item">
<StackLayout orientation="vertical">
<Label [text]="item.firstname"></Label>
<Label [text]="item.lastname"></Label>
</StackLayout>
</ng-template>
</RadListView>
<RadListView [items]="dataItems">
<ng-template tkListItemTemplate let-item="item">
<StackLayout orientation="vertical">
<Label [text]="item.firstname"></Label>
<Label [text]="item.lastname"></Label>
</StackLayout>
</ng-template>
</RadListView>
</GridLayout>
我为你创造了一个游乐场here。当您使用GridLayout
时,您需要将row
分配给RadListView。
<GridLayout rows="auto, auto'>
<RadListView row="0" [items]=" dataItems">
<ng-template tkListItemTemplate let-item="item">
<StackLayout orientation="vertical">
<Label [text]="item.firstname"></Label>
<Label [text]="item.lastname"></Label>
</StackLayout>
</ng-template>
</RadListView>
<RadListView row="1" [items]="dataItems">
<ng-template tkListItemTemplate let-item="item">
<StackLayout orientation="vertical">
<Label [text]="item.firstname"></Label>
<Label [text]="item.lastname"></Label>
</StackLayout>
</ng-template>
</RadListView>
</GridLayout>