0
RadListView.scrollToIndex()は、アイテムが既に表示されているかどうかにかかわらず、常に現在のウィンドウの下部に選択されたアイテムを表示しているようです。RadListViewのscrollToIndex()の動作が良好
RadListView.isVisible()のような機能はありますか?
RadListView.scrollToIndex()は、アイテムが既に表示されているかどうかにかかわらず、常に現在のウィンドウの下部に選択されたアイテムを表示しているようです。RadListViewのscrollToIndex()の動作が良好
RadListView.isVisible()のような機能はありますか?
私はちょうどscrollToIndex()
と与えられたシナリオをテストし、そのような振る舞いを再現することができませんでした。選択した行は常に画面の上部に表示されています。私のサンプルコードを見直すことができます。あなたはビューの上にロードされたときを知りたい場合にはloaded
イベントを使用することができます2番目の質問について
メインpage.xml
<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>
メインpage.ts
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");
}
スクリーン。 RadListviewが表示されているかどうかを知りたい場合はvisibilityプロパティを使用できます。
あなたはもっと多くのエントリーでそれをしなければならず、リストの真ん中または最後のどこかにスクロールしなければなりません。 "for"を200に変更してからscrollToIndexを180に変更すると、そのエントリがビューの下部に表示されます。それは問題ではありません。問題は、そのアイテムがすでにビューに入っている場合です。スクロールしてビューの下部に移動します。リスト項目が表示されている場合、質問の第2の部分は関係しています。リストビュー自体ではありません。私は "item.isVisible()ではない場合は次にitem.scrollToIndex()" – dashman