【发布时间】:2017-05-18 17:18:45
【问题描述】:
我不知道为什么我实现的虚拟滚动看起来很奇怪。
我有一个单词列表,我想在页面中显示它们。早些时候我使用 for 循环迭代了这些词,但在 android 设备中滚动性能很糟糕。所以我决定实现 ionic 官方文档中提到的基本虚拟滚动。
http://rhymebrain.com/talk?function=getRhymes&word=baby
这是我要迭代的数据。我只需要单词,不需要其他信息。
我的虚拟滚动代码如下所示:
<ion-card *ngIf="words?.length > 0">
<ion-card-header>rhymes with...</ion-card-header>
<ion-card-content>
<ion-list [virtualScroll]="words" [approxItemHeight]=" '500px' ">
<button *virtualItem="let word" ion-button round small>
{{word.word}}
</button>
</ion-list>
</ion-card-content>
</ion-card>
在我的网络浏览器中,我得到的结果很糟糕。我将分享一些屏幕:
图 1:用户搜索单词以获取所有押韵,但即使响应不为空,也不会显示任何数据。
图 2:如果我导航到另一个页面并返回,我会看到一些押韵。
图 3:如果我重复第 2 步或向下滚动一点,我会看到更多字词。它看起来很奇怪。
我不知道为什么虚拟滚动会这样。谁能告诉我我犯了什么错误或更好的解决方案?
提前致谢
【问题讨论】:
-
试试
-
当我像你提到的那样给出它时遇到了这个错误。未捕获的虚拟滚动高度必须使用“px”单位@Michael
-
在最近更新到 ionic 3 之后,我在使用 virtualScroll 时也遇到了一些问题。作为替代方案,我使用了 *ngFor。
-
你能详细说明一下吗?之前我用过ngFor,但是在移动设备上滚动很烂,所以我想到了用虚拟列表来平滑滚动。你能告诉我你是如何使用 ngFor 实现平滑滚动的吗?一个示例代码或其他东西会很棒。 @迈克尔
-
我的列表没有你的那么大,所以我使用了 ngFor。在您的情况下,最好的选择仍然是 virtualScroll。看:github.com/driftyco/ionic/issues/10879
标签: ionic2