Listview在黑莓10 Native中的滚动位置

时间:2014-08-06 04:47:35

标签: listview qml blackberry-10

我正在将10个数据从服务器加载到列表视图中,当用户到达第10个记录时,它会将更多数据加载到列表视图中,所以我已经完成了这个功能,

所以,现在的问题是,当我向下滚动以获取更多数据时,它会加载数据,但列表视图将其位置设置为0,因此用户必须滚动查看11个数字数据同样的事情发生在其他情况下再次加载更多数据,意味着现在我在列表视图中有30个数据,所以我必须从0开始检查什么是数据21。

所以我想做的是当用户到达最终位置并加载更多数据时我不希望列表视图从它的0位置开始而不是这个我希望它按原样设置。

以下是我的代码。

ListView {
           id: lstPromotionListOnline
           horizontalAlignment: HorizontalAlignment.Fill
           attachedObjects: [
                               ListScrollStateHandler {
                               onScrollingChanged: {
                               if (atEnd && scrolling == false) {
                                            if (Global.CurrentPageofList_Promotion == 1) {
                                                Global.CurrentPageofList_Promotion ++;
                                            }
                                            if (connInfo.isConnected()) {
                                                getPagewisePromotionList(Global.CurrentPageofList_Promotion);
                                            }
                                        }
                                    }
                                }
                            ] 

因此,在上面的代码中,我正在检查列表视图是否到达它的结束位置,如果它位于它的最后位置,那么它将加载更多数据并在连接互联网时调用web服务。

那么我怎样才能实现这一目标。我已经尝试了 scrollToPosition 选项,但它只提供了不符合我要求的Beginning和End选项。

我也试过 stickToEdgePolicy ,但这也不符合我的要求,所以请指导我解决这个问题。您的任何帮助将不胜感激......

提前谢谢你。

2 个答案:

答案 0 :(得分:1)

在这里,我找到了List滚动位置的完美解决方案。 请检查一下。

var index = (Your Variable Name)*10 (Position where you want to move. E.g. 10th position);
(ListViewName).scrollToItem([ index ], ScrollAnimation.None);


希望这会对你有所帮助。
欢呼声,

答案 1 :(得分:0)

API文档中有一个页面可解决此问题:https://developer.blackberry.com/native/documentation/cascades/device_platform/data_access/data_manager.html

我建议你阅读一下,看看它是否没有回答你的问题。