- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
为什么我们在 flatlist 中使用 getItemLayout,它如何帮助提高 flatlist 的性能。检查 react-native 文档但没有找到令人满意的答案。
getItemLayout={(data, index) => (
{length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index}
)}
什么是offset,它有什么作用?
最佳答案
React Native FlatList 通过仅渲染当前在屏幕上可见的行并卸载已经滚动过去的行来优化 ListView 性能。
为了让 FlatList 能够做到这一点,它需要知道当前可见视口(viewport)上方行的总高度,以便它可以正确设置底层 ScrollView 滚动位置。
FlatList 有两种实现方式。要么,
在前一种情况下,它需要完全布局、渲染、挂载和测量前一行的需要,直到它能够计算下一行的位置。
后者可以提前预计算位置,避免动态测量开销。
getItemLayout
回调的三个参数是:
length
:每一行的高度。它们可以有不同的高度,但高度应该是静态的。当高度恒定时,优化效果最好。 offset
:当前行距 FlatList 顶部的距离(以像素为单位)。为恒定高度行计算此值的最简单方法是 height * index
,它会生成紧跟在前一行之后的位置。index
:当前行索引。如果FlatList是水平的,则每一列都被视为列出一个列表行,列宽与行高相同。
关于android - Flatlist getItemLayout 用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48679272/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!