Как исправить производительность Android UI - PullRequest
0 голосов
/ 11 июня 2019

Я получаю:

Avoid using ListView or ScrollView with no explicit height set inside StackLayout. Doing so might results in poor user interface performance and a poor user experience.

У меня очень плохая производительность пользовательского интерфейса на Android.Это выглядит довольно гладко на iOS.Я пытаюсь выяснить, в чем может быть проблема.Эта ошибка возникает у меня.Я использую "nativescript-angular": "^ 8.0.0",

<ScrollView [visibility]="isBusy ? 'collapsed' : 'visible'" #sv>
<GridLayout rows="auto,auto,auto,auto" id="t2" columns="*" class="template_body">
        <GridLayout row="0" col="0" #wv1wrapper>
            <!-- <web-view id="instruction-wv" #wv1></web-view> -->
            <template-text [data]="lessonDetail.instruction" *ngIf="lessonDetail.instruction" [screenwidth]="screenWidth"></template-text>

        </GridLayout>
        <StackLayout row="1" col="0" class="main-img">
            <Image [src]="(lesson$ | async)?.thumbUrl" #imgref [data-image]="(lesson$ | async)?.imageUrl" (tap)="modalImage($event);"></Image>
        </StackLayout>
        <GridLayout row="2" col="0" #wvwrapper>
            <!-- <web-view id="wv" #wv></web-view> -->
            <template-text [data]="lessonDetail.body_text" [version]="version" *ngIf="lessonDetail.body_text" [screenwidth]="screenWidth"></template-text>

        </GridLayout>
    </GridLayout>

Это шаблон, который вставляется в розетку маршрутизатора, которая выглядит так восновной шаблон:

<FlexboxLayout class="contentbody" [visibility]="isBusy ? 'hidden' : 'visible'" [data-template]="template_id">
            <Label [text]="error" *ngIf="error"></Label>
            <router-outlet></router-outlet>
    </FlexboxLayout> 

Также на этой странице у меня есть представление списка внутри стекового размещения.

<StackLayout row="0" >
        <StackLayout class="vocab-notes">
            <Label *ngIf="vocabArray" class="h3 section-title" text="Vocabulary"></Label>
                <ListView [items]="vocabArray" id="vocablistview" (itemTap)="onItemTap($event)" class="list-items">
                    <ng-template let-item="item" let-i="index" let-odd="odd" let-even="even">
                        <GridLayout columns="*" rows="auto,auto" [class.odd]="odd" [class.even]="even" class="vocab-list">
                            <FlexboxLayout col="0" row="0" class="vocab-list-item-layout">
                                <Label [text]='item.label' textWrap="true" [id]="item.id" class="h3 vocab-list-item" (tap)="showVocab($event)"></Label>
                            </FlexboxLayout>
                        </GridLayout>
                    </ng-template>
                </ListView>
        </StackLayout>
...