Здравствуйте, у меня довольно странная проблема с listView в TabView.Я трачу весь день на решение этой проблемы, но безрезультатно.Из-за отсутствия обновления listView (ngZone не помогло), я должен сделать обновление программно в listView.Это работает, но проблема в том, что когда я захожу на эту страницу с другой страницы через маршрутизатор, то вводится через предыдущую страницу конструктора.У меня есть страница входа, где я делаю:
this.router.navigate(["/home"]);
И в home.component.ts конструктор выглядит так:
constructor(ngZone: NgZone, private page: Page)
, тогда я попытался позвонить:
var listview:ListView= <ListView> page.getViewById("listView1");
но он возвращается неопределенно (если страница входа не существует и существует только домашняя страница, она работает правильно).Когда я пытался получить представление со страницы входа в систему, я получал представление ...
Кто-нибудь может дать мне совет, что не так?Я много чего пробую, что нашел, но ничего не получается ... Спасибо за ваш ответ.
РЕДАКТИРОВАТЬ: Добавлен фрагмент кода: home.component.html
<GridLayout class="page">
<TabView height="100%" (selectedIndexChange)="onTabChanged($event)" class="content p-20" >
<ng-container *ngFor="let itema of objectKeys(site)" >
<StackLayout *tabItem="{title: itema}">
<ListView [id]="itema" class="list-group" [items]="getData(itema)" (itemTap)="onItemTap($event)">
<ng-template let-item >
<GridLayout class="list-group-item" rows="*" columns="auto, *">
<Label row="0" col="0" [text]="item.name"></Label>
</Image>
</GridLayout>
</ng-template>
</ListView>
</GridLayout>
</StackLayout>
</ng-container>
</TabView>
</GridLayout>
home.component.ts part:
ngOnInit(): void {
getJSON(url).then((r: any) => {
console.log(r);
this.ngZone.run(() => {
this.site = r;
});
//this part added because ngZone didn't work
var listview: ListView = <ListView>this.page.getViewById(objectKeys(this.site)[0]);
listview.refresh();
}, (e) => {
//TODO handle exception
console.log(e);
});
}
Я думаю, что проблема возникает из-за того, что ListView создается динамически (обновление не работает в методе onTabChange.)