首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RadListView更好的scrollToIndex()行为

RadListView更好的scrollToIndex()行为
EN

Stack Overflow用户
提问于 2016-09-02 00:32:29
回答 1查看 327关注 0票数 0

RadListView.scrollToIndex()似乎总是在当前窗口的底部显示选定的项目,而不管该项目是否已经可见。

有像RadListView.isVisible()这样的函数吗?

EN

回答 1

Stack Overflow用户

发布于 2016-09-02 19:37:11

我刚刚用scrollToIndex()测试了给定的场景,但无法重现这样的行为。选定行始终显示在屏幕顶部。您可以查看我的示例代码。

main-page.xml

代码语言:javascript
复制
<Page   loaded="onPageLoaded" xmlns:lv="nativescript-telerik-ui-pro/listview" xmlns="http://www.nativescript.org/tns.xsd">
    <lv:RadListView id="rdid" loaded="radlistviewlaoded" items="{{ dataItems }}" >
        <lv:RadListView.listViewLayout>
            <lv:ListViewLinearLayout scrollDirection="Vertical"/>
        </lv:RadListView.listViewLayout>
        <lv:RadListView.itemTemplate>
            <StackLayout orientation="vertical">
                <Label fontSize="20" text="{{ itemName }}"/>
                <Label fontSize="14" text="{{ itemDescription }}"/>
            </StackLayout>
        </lv:RadListView.itemTemplate>
    </lv:RadListView>
</Page>

main-page.ts

代码语言:javascript
复制
import { EventData } from "data/observable";
import { Page } from "ui/page";
import { HelloWorldModel } from "./main-view-model";
import { ObservableArray } from "data/observable-array";
import { RadListView } from "nativescript-telerik-ui-pro/listview";
import {setTimeout} from "timer"

// Event handler for Page "navigatingTo" event attached in main-page.xml
export function onPageLoaded(args: EventData) {
    // Get the event sender
    var page = <Page>args.object;
    var listview:RadListView = <RadListView> page.getViewById("rdid");
    console.log("listview visibility "+listview.visibility);
    //listview.scrollToIndex(3);
    var array = new ObservableArray();
    for(var i=0;i<20;i++){
        array.push({itemName:"Name "+i, itemDescription:"desc "+i});
    }
    setTimeout(function(){
        listview.scrollToIndex(3)
    }, 2000)

    page.bindingContext = {dataItems:array};
}

export function radlistviewlaoded(args:EventData){
    console.log("RadListView loaded");
}

关于第二个问题,如果您想知道视图何时加载到屏幕上,可以使用loaded事件。如果您想知道RadListview是否可见,可以使用visibility属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39276655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档