【发布时间】:2019-03-04 08:30:20
【问题描述】:
我正在使用 RadListView 组件 Nativscript-ui-listview。在列表中,我显示了我自己构建的小部件。在 Android 上没有问题,只要我打开列表,它们就会全部加载并显示。但是在 IOS 上,我滚动过去然后滚动回它们后会加载一些负载,而有些则根本不会显示。左图是安卓,右图是IOS。该列表显示三个小部件,一个图表小部件、地图和一个带有数字的小部件。如何让它们在 IOS 上显示?
@Component({
selector: 'app-newlist',
templateUrl: './new-widgets-list.component.html',
styleUrls: ['./new-widgets-list.component.css'],
changeDetection: ChangeDetectionStrategy.OnPush,
moduleId: module.id,
})
export class NewListComponent implements OnInit {
public title: String = 'Widgets';
public widgetsListSubscription = new Subscription;
public widgets$: ObservableArray < Widget > ;
public _sourceDataItems: ObservableArray < Widget > ;
public _sourceDataItems2: ObservableArray < Widget > ;
public processing$ = new BehaviorSubject < boolean > (true);
public listview: RadListView;
public layout: ListViewLinearLayout;
constructor(public page: Page,
private readonly store: Store < AppState > ) {
this.initData();
}
ngOnInit(): void {
this.widgets$ = new ObservableArray < Widget > ();
}
public get dataItems(): ObservableArray < Widget > {
return this._sourceDataItems2;
}
private initData(): void {
this._sourceDataItems = new ObservableArray < Widget > ();
const data = this.store.pipe(
select(getDisplayedWidgets),
map(idmap => Object.values(idmap))
);
data.subscribe(list => this._sourceDataItems.push(list));
this._sourceDataItems2 = this._sourceDataItems;
}
}
<GridLayout tkExampleTitle tkToggleNavButton>
<app-action-bar [title]="title"></app-action-bar>
<RadListView [items]="dataItems" id="rlv">
<ng-template tkListItemTemplate let-item="item">
<StackLayout orientation="vertical">
<GridLayout columns="auto">
<app-widgets-picker horizontalAlignment="left" [widget]="item"></app-widgets-picker>
</GridLayout>
</StackLayout>
</ng-template>
<ListViewLinearLayout *appIfIos tkListViewLayout itemHeight="250"></ListViewLinearLayout>
</RadListView>
</GridLayout>
【问题讨论】:
-
您能否分享一个完整的 Playground 示例,以便重现该问题?
-
我已经通过使用转发器而不是列表视图绕过了这种问题。如果这种方法对您有用,那么中继器在 iOS 上的可预测性会更高。
-
我可以在 Angular 项目中使用中继器吗?
标签: angular nativescript angular2-nativescript nativescript-telerik-ui