如何在iOS上显示RadListView

时间:2018-09-26 16:26:09

标签: nativescript angular2-nativescript nativescript-telerik-ui

我有以下代码:

<GridLayout row="7" col="0" colSpan="3" rows="*" cols="*">
     <RadListView [items]="sourcesOptions" height="100%">
           <ng-template tkListItemTemplate let-item="item">
                 <StackLayout orientation="horizontal">
                       <Switch [checked]="true" class="switch"></Switch>
                       <Label [text]="item.label" textWrap="true" marginTop="15"></Label>
                 </StackLayout>
           </ng-template>
           <ListViewGridLayout tkListViewLayout itemHeight="200" scrollDirection="Vertical" spanCount="2"></ListViewGridLayout>
     </RadListView>
</GridLayout>

它可以在Android上运行,但是在iOS上却什么也没显示。

注意

我不知道这是否与问题有关,但是我从休息服务处得到了物品。

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

问题在于项目异步时的高度,在这种情况下,我需要将高度手动设置为RadListView组件的父布局(在我的情况下为GridLayout)。

如果我用百分比(100%)设置高度,那是行不通的,它必须是一个固定的数字,这非常不方便,因为项目数并不总是相同,所以我创建了一个函数来设置高度取决于收到的物品的数量。

这是解决此问题的代码:

<GridLayout row="7" col="0" colSpan="3" rows="*" cols="*" [height]="setHeight()">
     <RadListView [items]="sourcesOptions">
          <ng-template tkListItemTemplate let-item="item">
               <StackLayout orientation="horizontal">
                    <Switch [checked]="true" class="switch"></Switch>
                    <Label [text]="item.label" textWrap="true" marginTop="15"></Label>
               </StackLayout>
          </ng-template>
          <ListViewGridLayout tkListViewLayout itemHeight="70" scrollDirection="Vertical" spanCount="2"></ListViewGridLayout>
     </RadListView>
</GridLayout>

答案 1 :(得分:0)

height="100%"之类的RLV组件上尝试一个高度值,以使其填充父级。 iOS不会像android那样进行自动布局,这就是为什么您遇到这种情况:)

答案 2 :(得分:0)

您尚未为rows提供columnsGridLayout定义。如果您这样做,RadListView可能会出现:

<GridLayout row="7" col="0" colSpan="3" rows="*" columns="*">