Nativescript RadListView 使用页脚滚动到底部

Posted

技术标签:

【中文标题】Nativescript RadListView 使用页脚滚动到底部【英文标题】:Nativescript RadListView Scroll to Bottom with footer 【发布时间】:2020-09-01 13:56:48 【问题描述】:

我正在使用 RadListView 并尝试以编程方式滚动到列表底部。我可以使用scrollToIndex() 函数滚动到列表中的最后一个元素,但是我的列表有一个页脚,我也需要滚动过去。除了滚动到最后一个元素然后用页脚的高度执行scrollWithAmount() 之外,我想不出一个干净的方法来做到这一点。这种方式效果不佳,我觉得应该有更好的方式。

Here 是一个显示问题的 Playground。

【问题讨论】:

【参考方案1】:

要滚动到 RadListView 的最底部,您可以简单地计算它的高度和滚动量。

    let to;
    if (this.radList.ios) 
        const collectionView = this.radList.nativeViewProtected.collectionView;
        to = Math.max(0, collectionView.contentSize.height - collectionView.bounds.size.height);
     else 
        to = layout.toDevicePixels(this.radList.getMeasuredHeight());
    
    this.radList.scrollWithAmount(to, false);

Updated Playground

【讨论】:

这使我越过了列表的底部并显示空白空间,直到我与列表交互。 i.imgur.com/4Hfkym0.jpg 我已经更新了答案,在 iOS 和 android 上都进行了测试。 我在两个平台上仍然遇到问题。在 iOS 上,它只有在我一直滚动到顶部时才有效。如果我已经在底部或中间,它会将我移动到一些空白处 (i.imgur.com/TWXT3e7.gif)。 Android有一个相反的问题。如果我在顶部,它不会一直滚动到底部(我仍然可以看到一点蓝色),但如果我在顶部以外的其他任何地方,它会起作用(i.imgur.com/4MxBWen.gif)。 这是有道理的,其目的只是展示如何滚动。您必须确保当前的滚动偏移量是多少并且它不在顶部,然后从滚动总量中减去它,基本上是几个 if 条件。

以上是关于Nativescript RadListView 使用页脚滚动到底部的主要内容,如果未能解决你的问题,请参考以下文章

Nativescript 中 RadListView 中的中心项目

NativeScript:如果用户点击 RadListView 中的空白空间,我如何捕捉点击事件?

Telerik UI Nativescript - RadListView 涟漪效应

NativeScript RadListView:无限滚动到顶部?

Nativescript radListView 不显示项目

Nativescript-ui Radlistview 空指针错误