插入多个RadListViews不会在iOS上显示

问题描述 投票:0回答:1

我在同一页面上需要多个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>
ios height nativescript-angular radlistview
1个回答
0
投票

我为你创造了一个游乐场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>
© www.soinside.com 2019 - 2024. All rights reserved.