0

同じページに複数の RadListView が必要です。NativeScript Angular を使用しています

各リストのアイテム数はわかりません。アイテムに含まれるテキストの量によって、アイテムのサイズが大きく異なる場合があります。

いわば、3 つの RadLists を重ね合わせる必要があります。最初の RadList には 3 つのアイテム、次の 72 のアイテム、最後の 9 つのアイテムがあります。各リストがそのコンテンツが要求する高さになるようにしたいので、長さに関係なく、それらを重ねて表示できます。

Android では、これは魔法のように機能します。各 radlistview は、アイテムを表示するのに必要な高さを正確に占有し、その直後に次の radlistview を生成します。

一方、iOS では大きく異なります。RadListView 自体の高さを設定しないと、単に表示されません。

GridLayout 内に 2 つの RadListViews があり、row="150, 150" または rows="*,*" のような絶対値を行に与えると、指定された値が許す限り多くのリストが表示されますが、必要です各リストの高さがわからず、すべての項目を表示したいので、rows="auto, auto" にします。

RadListView で高さを直接設定することもできますが、高さはわかりません。

RadListView に直接 height="100%" を設定しても、絶対的な親の高さを設定できないため、問題は解決しません。

これはまったく可能ですか、それとも高さプロパティの数値を計算する必要がありますか (これは本当にやりたくないことです)

繰り返しますが、問題は iOS デバイスにのみ存在します。

ObservableArray の非同期性が役割を果たしている可能性があると考えたため、dataItem を ObservableArray とオブジェクト型の単純な配列 name[] の両方としてフィードしようとしましたが、問題ではありません。テキストを入力することもできます。の代わりに like の定数を持つプロパティ。それでも、行または 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>
4

1 に答える 1

0

ここに遊び場を作りました。を使用している場合は、 RadListViewGridLayoutに割り当てる必要があります。row

<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>
于 2019-04-08T22:42:53.973 に答える