强制焦点到ListView中的某个索引

时间:2019-07-12 09:42:20

标签: nativescript nativescript-vue nativescript-ui-listview

我创建一个列表,并根据用户给出的输入,我希望它专注于列表中的某个元素。

<ListView for="(item, index) in timeTable" @itemTap="onItemTap">
    <v-template>
            <FlexboxLayout class="travelDetails" :ref="index">
            </FlexboxLayout>
    </v-template>
</ListView>

created: function(){
     this.$refs[this.indexIWantToFocusOn].nativeView.focus()
} 

但是问题在于该元素的引用尚未呈现。

那么有没有办法强制索引应该从0以外的其他值开始?

还是有其他解决方法?

1 个答案:

答案 0 :(得分:2)

通过scrollToIndex加载ListView之后,您可以尝试滚动到所需的索引。检查docs

<ListView for="item in timeTable" @itemTap="onItemTap"
    ref="myList" @loaded="onLoaded">
    <v-template>
        <FlexboxLayout class="travelDetails">
        </FlexboxLayout>
    </v-template>
</ListView>
onLoaded() {
    this.$refs.myList.nativeView.scrollToIndex(this.indexIWantToFocusOn);
}