- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个事件部分,其中的部分标题包含日期。我需要能够跳转到特定日期,并将初始滚动位置设置为 future 的第一个日期。
为了跳转到特定日期,我尝试将它们的 y 位置存储在状态中。
renderSectionHeader= (sectionData, sectionID) => (
<View
onLayout={(event) => {
const { y } = event.nativeEvent.layout;
const sectionPosition = { [sectionID]: y };
const sectionPositions = Object.assign({}, this.state.sectionPositions, sectionPosition);
this.setState({ sectionPositions });
}}
...
我在使用这种方法时遇到了问题,因为 renderSectionHeader 没有在列表下方的元素上调用(由于惰性渲染)。
然后我尝试用数学方法计算位置,但这会导致每个部分的渲染在接近给定日期时显示在屏幕上。
有没有办法实现我的需要?
相关
React Native ListView: How to scroll to a particular row
https://github.com/facebook/react-native/issues/499
更新
在我的应用程序中,我知道所有行的高度都完全相同。
使用 contentOffset={{ y: offsetY }}
而不是 setScroll
不起作用,因为它仍然需要呈现给定项目之前的所有项目才能工作。
使用 initialListSize={99999999}
确实有效,但会使页面非常慢,我已被警告不要使用它。
更新 2
是否可以将我的初始内容提供给数据源,然后更新数据以在当前屏幕上的元素前后添加额外的项目?
或者是否有我没有找到的库可以满足我的需要?
最佳答案
看起来这可能很快就会被 FlatList 解决,它目前位于 React-Native 仓库的实验文件夹中。
Better ListView - FlatList Summary: We really need a better list view - so here it is!
Main changes from existing
ListView
:
- Items are "virtualized" to limit memory - that is, items outside of the render window are unmounted and their memory is reclaimed. This means that instance state is not preserved when items scroll out of the render window.
- No
DataSource
- just a simpledata
prop of shapeArray<any>
. By default, they are expected to be of the shape{key: string}
but a customrowExtractor
function can be provided for different shapes, e.g. graphql data where you want to mapid
tokey
. Note the underlyingVirtualizedList
is much more flexible.- Fancy
scrollTo
functionality:scrollToEnd
,scrollToIndex
, andscrollToItem
in addition to the normalscrollToOffset
.- Built-in pull to refresh support - set set the
onRefresh
andrefreshing
props.- Rendering additional rows is usually done with low priority, after any interactions/animations complete, unless we're about to run out of rendered content. This should help apps feel more responsive.
- Component props replace render functions, e.g.
ItemComponent: ReactClass<{item: Item, index: number}>
replacesrenderRow: (...) =>
React.Element<*>- Supports dynamic items automatically by using
onLayout
, orgetItemLayout
can be provided for a perf boost and smootherscrollToIndex
and scroll bar behavior.- Visibility callback replaced with more powerful viewability callback and works in vertical and horizontal mode on at least Android and iOS, but probably other platforms as well. Extra power comes from the
viewablePercentThreshold
that lets the client decide when an item should be considered viewable.
演示:
关于javascript - ReactNative ListView 设置加载数据后的初始滚动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38435277/
Reactnative可以调用原生模块,原生模块也可以给JavaScript发送事件通知.最好的方法是继承RCTEventEmitter.自定义继承自PushEventEmitter的子类RCTEv
我对 React-Native 和 JavaScript 很陌生。我真的不知道如何开始这个小项目 用户可以为每个问题选择 1 个选项 你最喜欢什么宠物? 一只狗 一只猫 您希望您的宠物是什么颜色 红色
我正在使用List从 NativeBase 渲染数据。我尝试过这样设置: body = }
我是 React Native 的新手,一直在尝试一两个示例。当我尝试在我的 Mac 上构建 Android“电影”示例时,出现以下错误: ./gradlew :Examples:Movies:and
已编辑 我是 ReactNative 的新手,我正在尝试在我的文本框上书写。但是,我无法输入任何内容。我尝试将 redux 表单添加到注册屏幕。这是我的 Signup.js : import Reac
单击文本时,我收到一条错误消息“undefined is not an object (evaluating '_this2.categoryClicked.bind')” 我认为错误是“onPres
zzz@zzz-PC ~/AndroidStudioProjects/Example $ react-native run-android Scanning 555 folders for symli
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我们正在尝试构建使用静态库和 cocoapods 依赖项的 ios React native 应用程序。所有依赖项都需要 React。我们面临的问题是,当我们包含静态库时,我们也需要将 React 包
您对如何做到这一点有什么想法吗? 通过单击按钮打开的下拉列表,此下拉列表包含其他项目列表。如果可能的话,动态地! 例如:类别:水果,食品(第一个下拉列表)在这个类别中,每个类别都有一个列表: 水果:[
我已经开始开发一个 react native 应用程序,但我的 ListView 的初始化出现问题。 我正在使用react-native-db-models插件来存储和检索我的数据 问题是我想在rea
尝试在 Android 模拟器上运行我的项目时,设备抛出此错误 emulator screenshot .我似乎无法弄清楚我做错了什么。我还是很新的 react 最佳答案 首先安装babel poly
我有一个事件部分,其中的部分标题包含日期。我需要能够跳转到特定日期,并将初始滚动位置设置为 future 的第一个日期。 为了跳转到特定日期,我尝试将它们的 y 位置存储在状态中。 renderSec
是否可以挂接到 React-Native 的平台特定扩展以使用自定义扩展? 以同样的方式你可以区分 .ios.js 和 .android.js,有没有办法定义自定义扩展 .xyz.js。 (相当于 w
我致力于 React Native(React 16.2.0,React Native 0.54) 我使用 flatlist 显示大量项目。我们可以以拥有 1000 名员工的联系人列表为例。 平面列表
我正在尝试使用我的上下文中的值/函数,但每次我 console.log 一个从上下文中 Coes 的值时,该值是未定义的。 这是我的上下文: import { NativeStackNavigatio
如果我尝试滚动到 ScrollView 的底部,它会弹回其默认位置,并且不会让我查看其全部内容。 我的(截断的)设置相当简单:
我的应用程序中有一个表单,我希望用户能够通过单击“下一步”返回按钮转到下一个 TextInput。我的输入组件: export default class Input extends Comp
这个问题在这里已经有了答案: Basic FlatList code throws Warning - React Native (13 个回答) 4年前关闭。 我正在关注 SectionLists
我希望在 React Native 中使用这个包,这是一个用 Flatlist 实现的轮播,并允许水平滑动来滑动图像。 https://github.com/gusgard/react-native-
我是一名优秀的程序员,十分优秀!