首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从第二个屏幕返回到第一个屏幕时更改Flatlist滚动索引

,可以通过以下步骤实现:

  1. 首先,确保你的应用程序使用React Native框架进行开发,并且已经安装了相关的依赖。
  2. 在第一个屏幕的代码文件中,引入Flatlist组件,并在组件的state中定义一个变量来保存当前的滚动索引,例如:
代码语言:txt
复制
import React, { Component } from 'react';
import { FlatList } from 'react-native';

class FirstScreen extends Component {
  constructor(props) {
    super(props);
    this.state = {
      scrollIndex: 0, // 当前的滚动索引
    };
  }

  // 其他代码...
}
  1. 在Flatlist组件中,使用onViewableItemsChanged属性来监听可见项的变化,并在回调函数中更新当前的滚动索引,例如:
代码语言:txt
复制
<FlatList
  data={yourData} // Flatlist的数据源
  renderItem={yourRenderItem} // 渲染每一项的方法
  onViewableItemsChanged={({ viewableItems }) => {
    if (viewableItems.length > 0) {
      const index = viewableItems[0].index;
      this.setState({ scrollIndex: index });
    }
  }}
/>
  1. 在第二个屏幕中,当返回到第一个屏幕时,将保存的滚动索引传递给第一个屏幕,并在Flatlist组件中使用scrollToIndex方法将滚动位置设置为之前保存的索引,例如:
代码语言:txt
复制
class SecondScreen extends Component {
  // 其他代码...

  goBackToFirstScreen = () => {
    const { navigation } = this.props;
    const { scrollIndex } = this.state;
    navigation.goBack(); // 返回到第一个屏幕
    navigation.state.params.updateScrollIndex(scrollIndex); // 传递滚动索引给第一个屏幕
  }

  // 其他代码...
}
  1. 在第一个屏幕的导航配置中,将第二个屏幕的返回方法传递给第一个屏幕,并在返回时调用该方法,例如:
代码语言:txt
复制
class App extends Component {
  render() {
    return (
      <NavigationContainer>
        <Stack.Navigator>
          <Stack.Screen
            name="First"
            component={FirstScreen}
            options={({ navigation }) => ({
              headerLeft: () => (
                <Button
                  onPress={() => navigation.navigate('Second', {
                    updateScrollIndex: (index) => this.updateScrollIndex(index),
                  })}
                  title="Go to Second"
                />
              ),
            })}
          />
          <Stack.Screen name="Second" component={SecondScreen} />
        </Stack.Navigator>
      </NavigationContainer>
    );
  }

  updateScrollIndex = (index) => {
    this.setState({ scrollIndex: index });
  }
}

通过以上步骤,当从第二个屏幕返回到第一个屏幕时,会将之前保存的滚动索引传递给第一个屏幕,并将Flatlist组件的滚动位置设置为该索引,实现了从第二个屏幕返回到第一个屏幕时更改Flatlist滚动索引的功能。

注意:以上代码示例中的yourDatayourRenderItemButton等变量需要根据实际情况进行替换或定义。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 如何在React Native中使用FlatList组件

    ListEmptyComponent:一个组件,用于在列表为空渲染。...React Native中的FlatList组件是一个非常实用的组件,可以轻松实现列表的展示和滚动,且能够支持大量数据的高效渲染和懒加载,提高了用户体验。...在本文中,我们介绍了使用FlatList组件的基本步骤和常用属性,以下是一些需要补充和扩展的内容:关于keyExtractor属性在使用FlatList组件,通常需要为每个列表项指定一个唯一的key属性...item是列表中的每个元素,第二个参数index是元素在列表中的索引。...React Native的FlatList组件提供了一个名为onEndReached的属性,该属性接受一个函数作为参数,当用户滚动到列表底部就会触发该函数。

    45100

    React Native列表之FlatList开发实用教程

    接下来就让我FlatList的由来说起: 在大家React Native开发环境过程中遇到无法解决的问题可以在课程问答区进行提问,课程老师会对你进行辅导和帮助; FlatList的由来?...这个渲染窗口能响应滚动行为。当一个元素离可视区太远,它就有一个较低优先级;否则就获得一个较高的优先级。...它主要是通过虚拟元素也就是在渲染窗口之外的元素将会被组件结构上卸载以达到回收内存目的。...除data外还有第二个参数index可供使用。 onRefresh?: ?...initialNumToRender: number 指定一开始渲染的元素数量,最好刚刚够填满一个屏幕,这样保证了用最短的时间给用户呈现可见的内容。

    6.5K00

    添加多个屏幕-创建格线布局

    在上一节中,我们学习了如何使用按钮更改iPhone的屏幕。让我们进一步推动!我们将实现一个CollectionView,我们将能够切换到您想要的壁纸。该的CollectionView将是滚动的水平。...在第一个图标的顶部,Control +第一个图标(黄色圆圈)拖动到第二个图标的视图。它将创建一个segue并选择Present Modally。命名segue:HomeToDialog。...单击第二个View Controller的顶部,转到Identity Inspector并将其Class更改为DialogViewController。该助理编辑会自动更改为新的类文件。...在“ 属性”检查器中,将“滚动方向”更改为“ 水平”并取消选中“ 显示”指示器。到目前为止,如果您运行该应用程序,您将看到3个类似的cell,并且它是可滚动的。问题是它现在做的不多。 ?...在返回cell之上,将cell的索引更改索引路径行。 cell.index = indexPath.row 返回UIImage 当我们点击按钮,它将在函数中返回UIImage类型的图像。

    2.9K40

    React Native跨平台开发2017 年终总结

    在过去的一年中React Native经历了十几次的版本迭代,版本也v0.40升级到v0.52,总体来说,版本迭代没以前那么频繁,组件也越来越丰富,稳定性也越来越好了,下面就一些新组件,新API进行相关的总结...0.43 通用:FlatList 正式发布; 通用:样式支持 alignContent 属性; 通用:init 项目的模板可以自定义了。...FlatList:基于VirtualizedList的高性能简单列表组件。...新增API函数 AccessibilityInfo:一个用于判断屏幕阅读器是否处于激活状态的API。 DeviceInfo:一个类专门提供屏幕尺寸,字体缩放等信息的API。...代替此地图组件; RecyclerViewBackedScrollView:现在直接通过ScrollView即可解决滚动冲突; AdSupportIOS:使用react-native-deprecated-modules

    2.5K70

    markdown 编辑器实现双屏同步滚动

    思考了一段时间,最后想出来了三种方案: 百分比滚动 双屏同时渲染占用面积大的元素 每一行的元素都赋上一个索引,根据索引来精确同步每一行的滚动高度 百分比滚动 假设现在正在滚动 a 屏,那 a 屏的滚动百分比计算方式为...但当我滚动到第三个大标题,左右双屏的内容高度已经差了将近 300 像素了。所以说这个方案勉勉强强能用吧,聊胜于无。...第一步,监听 markdown 编辑框的内容变化,为每一个元素赋上一个索引,空行空文本除外。 图片 当把编辑框的 HTML 传给右边的框渲染,需要把 data-index 赋值给渲染后的元素。...图片 第二步,根据 a 屏的元素滚动高度计算 b 屏上同一索引的元素滚动高度 在 a 屏进行滚动,需要从上到下遍历 a 屏的所有元素,并且找到第一个屏幕内的元素。...找到第一个屏幕内的元素 这句话的意思是因为在滚动过程中,有些元素会因为滚动跑到屏幕外面(原来在屏幕内,滚动屏幕外),这些元素我们是不需要计算的。

    88420

    Android 基于RecyclerView实现的歌词滚动自定义控件

    ((;′⌒`)) 接下来说一下实现原理: 该控件分为以下几个部分: 歌词自动滚动 歌词颜色字体变化 触碰屏幕歌词不滚动,高亮显示,离开自动移动到当前歌词位置 触碰屏幕中间线条出现以及显示该歌词的时间...所以我们需要需要使用 Runable 来执行滚动操作。而且为了避免内存泄漏。将 Runable 实现类修饰为 static 。所以歌词列表索引位置有所变化。...而对于歌词在离开屏幕后的一段时间后自动回到该位置。同样的,还是需要使用 smoothScrollBy() 方法移动。而移动多少呢?这是个问题。...这个要分为四种情况: 第一种: 当前歌词在屏幕之外:由于我是打算将歌词移动到屏幕中的第四个位置。 那么我就需要找到屏幕中的第一个位置,还有当前显示的是哪一句歌词。...所以我做的是去第二个可视化位置,判断该位置离 top 与 item/2 的距离的比较。从而解决问题。 最开始只是根据第一个可视化位置而显示的时间,但是显示时间变化的位置不对。 ?

    1.7K10

    less(1) command

    , --help 显示帮助信息,等于交互式命令 h -a, --search-skip-screen 向前搜索默认当前屏幕的首行开始,向后搜索默认当前屏幕的末行开始。...该选项使得向前搜索屏幕末行的下一行开始,向后搜索当前屏幕首行的前一行开始,即跳过屏幕内容。...-Pw 更改在等待数据打印的消息(在 F 命令中) -q, --quiet, --silent 导致适度的“静音”操作。...如果将数字指定为分数,则在调整终端窗口的大小时将重新计算滚动条位置的实际数量,从而使实际滚动条保持在屏幕宽度的指定分数 --follow-name 通常,如果在执行 F 命令重命名输入文件,less...在检查新文件,将保留标记,因此 ' 命令可用于在输入文件之间切换 ^X^X 等于 ' 命令 /PATTERN 向前搜索包含指定模式的第 N 行,N 默认为 1。屏幕首行开始搜索。

    21830

    react-native-easy-app 详解与使用之(三) View,Text,Image,Flatlist

    通过设置一个屏幕参考尺寸,重置XView、XText、XImage的尺寸,实现自动多屏适配 可能有人觉得,不同的App有不同的风格UI也完全不一样,除非是特定需求的UI,基础功能的UI直接写就行了,还需要封装么...简单UI(XView,XText,XImage) 1、事件支持 View,Text,Image作为使用频率最高的三个组件,并不支持我们最常使用的onPress事件,我们要使用onPress事件,得使用...当然,这种包裹嵌套方式自然会引出另一个问题,当给这些UI设置属性,属性是被传给外层的View还内层的Text呢?...不用担心内层包装已经做了处理,将传入的属性和样式做了拆分,属于Text的属性和样式会传给Text,剩下的再传给外层的View 复杂UI(XFLatList) 1、下拉刷新与分页支持 下拉刷新,滚动到底部加载更多数据是很常见的应用场景...] [flatlist_loading_more.png] [flatlist_loading_network_exception.png] XFlatList data生Flatlist几乎一样,原生属性也都支持

    2.2K10

    从零开始构建React Native数字键盘功能

    Login 屏幕将是用户初次加载应用时看到的第一个屏幕。它将有一个按钮,可以将用户引导到 CustomDialpad 屏幕,在那里他们可以输入他们的PIN码。...当用户导航到一个屏幕,它会被推到堆栈的顶部。然后,当用户导航到另一个页面,它会堆栈顶部弹出屏幕。 在这种情况下,堆栈顶部的初始屏幕将是 Login 屏幕。...当用户按下按钮导航到 CustomDialpad 屏幕, CustomDialpad 屏幕会被推到 Login 屏幕的上方,依此类推: 现在屏幕导航已经全部设置好了,我们可以开始设置数字键盘的逻辑和用户界面...如果 code 状态数组中有四个项目,长度将为 3 ,因为数组中的索引 0 开始。...就像第一个用例一样,你可以在你的应用程序中自定义数字键盘,显示在你的登录页面上。 用户在注册可以输入一个PIN码。

    25510

    Linux 命令(89)—— less 命令

    , --help 显示帮助信息,等于交互式命令 h -a, --search-skip-screen 向前搜索默认当前屏幕的首行开始,向后搜索默认当前屏幕的末行开始。...该选项使得向前搜索屏幕末行的下一行开始,向后搜索当前屏幕首行的前一行开始,即跳过屏幕内容。...-Pw 更改在等待数据打印的消息(在 F 命令中) -q, --quiet, --silent 导致适度的“静音”操作。...如果将数字指定为分数,则在调整终端窗口的大小时将重新计算滚动条位置的实际数量,从而使实际滚动条保持在屏幕宽度的指定分数 --follow-name 通常,如果在执行 F 命令重命名输入文件,less...比如 +G 表示跳转至文件末尾,+/XYZ 表示跳转至匹配 XYZ 的第一行,+NUM 表示文件第 NUM 行开始显示;如果选项以 ++ 开头,则初始命令将应用于所查看的每个文件,而不仅仅是第一个文件

    4.4K30

    Material Design — App bars: topApp bars: top

    原则 ·始终保持 Top app bar 出现在 app 中每个屏幕的顶部,并且可以在滚动消失。 ·引导 Top app bars 提供了一种可靠的方式来引导用户浏览 app。...它可以采取以下任何一种形式: ·一个 menu icon,打开一个 navigation drawer ·向上箭头,用于导航 app 的层次结构 ·后退箭头,返回到前一个屏幕 ?...在滚动,它们会增加海拔并让内容在它们后面滚动 ? 当向上滚动,使用带有图像的 prominent top app bars 可以转换为正常的 top app bars。...他们不应该返回到 prominent 模式,直到用户滚动回页面的顶部。 Nesting actions 当屏幕大小调整, top app bar 会随之调整大小。...Bar  当 top app bar 变换为 contextual action bar ,bar 应更改颜色以指示状态更改

    2.2K60

    vim的快捷键大全

    Fx:定位到上一个x上,重复,可用;或, 不过 , 表示反方向 %:跳到相对应的括号上,编程时常用 33G:跳转到33行 此时按“可以返回到原来行 gg:文件头 G: 文件尾 30%:跳转到文件的...zz:将当前行滚动屏幕中间,方便查看上下文 zt置顶,zb置尾 /string 查找string,回车后,按n键可以跳到下一个,N上一个,另外按/键后,按上下键可以找到以前查找的记录,同样的 :也有记录...滚动整屏: ^f:向前(下)一整屏 ^b:向后(上)一整屏 ^d:向前(下)一半屏 ^u:向后(上)一半屏 z,Enter:将光标所在行移动到屏幕顶部(同于zz) z....在屏幕中移动: H、M、L分别移动到屏幕的顶部、中间和尾部。 nH、nL 移动到距离屏幕顶部和顶部n行的位置。 Enter:到下一行的第一个字符。 +:到下一行的第一个字符。...dfi:向右删除第一个i的位置(包括i) dti:同dfi,只是不包括i Ctrl+G 查看当前行信息 nG跳转后,可使用“回到上一次的位置,”功能一样,不过只是回到前次位置所在行的开头,而不是确定的位置上

    2.1K40

    开始使用-编写你的第一个Flutter应用程序 顶

    第1步:创建起始Flutter应用程序 第2步:使用外部包装 第3步:添加一个有状态的小部件 第4步:创建一个无限滚动ListView 第5步:添加交互性 第6步:导航到新的屏幕 第7步:使用主题更改UI...如何创建并导航到第二个屏幕。 如何使用主题更改应用程序的外观。...两个参数传递给函数 - BuildContext和行迭代器,i 迭代器0开始,每次调用该函数递增,每次建议的单词配对一次。 该模型允许建议的列表在用户滚动无限增长。...MyApp中删除Scaffold和AppBar实例。 这些将由RandomWordsState管理,这使得用户在下一步中从一个屏幕导航到另一个屏幕,可以更轻松地更改应用栏中的路由名称。...3.当用户点击应用栏中的列表图标,建立一条路由并将其推送到导航器的堆栈。 此操作会更改屏幕以显示新路由。

    9.5K20

    SAP最佳业务实践:ETO–项目装配(240)-4基于SD的更改调整项目

    将光标置于项目结构:描述 屏幕区域上的 ETO总网络,并选择 网络图形。如果需要,此处您可以更改订单和活动之间的连接。 3. 选择 返回 返回到 项目构造器:项目 M-OPXXX 屏幕。...在 项目:修改屏幕的右侧,将光标置于蓝色条 WBS 要素 订单(它是控制项目中日期的第一个 WBS 要素)的上面。光标变成双向箭头:将鼠标一直向左拖,直到日期变成与项目结束日期相同为止。 ? 1....选择 返回 返回到 项目构造器:项目 M-OPXXX屏幕,并选择 WBS 要素 M-OPXXX-01 (订单)。菜单上选择 (NWBC: 更多…®) 编辑 ®状态 ® 下达。...在 输入网络确认:实际数据屏幕中,输入以下数据: 字段名称 描述 用户操作和值 注释 加工的程度 % 100 最终确认 选中该复选框 确认 组框 实际的(开始) 活动的开始日期 当前日期 组框确认中的第一个输入字段...已经更改完成日期、重新计划项目、审批 WBS 要素订单,并已确认阶段中的第一个活动。

    1.9K80

    React Native 性能优化指南

    我们先用 JSX 写两个橙色底的卡片,除了卡片文字,第一个卡片还嵌套一个黄色 View,第二个卡片嵌套一个空 View: // 以下示例 code 只保留了核心结构和样式,领会精神即可 render()...2、 public class fields 语法绑定渲染函数 这个其实和第一个差不多,只不过把事件回调函数改成渲染函数,在 React Native 的 Flatlist 中很常见。...很多新人使用 Flatlist ,会直接向 renderItem 传入匿名函数,这样每次调用 render 函数都会创建新的匿名函数: render(){ <FlatList data=...比如说下面的动图,在屏幕中上下滚动,y 轴上的偏移可以通过 ScrollView#onScroll 属性开启 useNativeDrive: true 来优化滚动体验。...这里我设置为 3, debug 指示条可以看出,它的高度是 Viewport 的 3 倍,上面扩展 1 个屏幕高度,下面扩展 1 个屏幕高度。在这个区域里的内容都会保存在内存里。

    5.3K200

    Material Design — App bars: bottomApp bars: bottom

    ·灵活 Bottom app bars 的布局和操作会因为屏幕的需求而改变。 ·人体工学 Bottom app bars 很容易移动设备上的手持位置到达。...查看消息,bottom app bar 布局更改为“FAB 在尾部”布局以适应其他上下文操作。...滚动 滚动, bottom app bar 可以出现或消失: 向下滚动隐藏 bottom app bar, 如果有FAB,则它会脱离 bar 并保留在屏幕上。...当 bar 脱离FAB,会恢复到默认的形状。 在返回到屏幕并重新附着 FAB 后,bar 重新获得了缺口形状。 ? ---- 海拔 Bottom app bar 的海拔高度为8dp。...底部的导航抽屉底部的应用栏打开。 抽屉在底部应用程序栏前打开,并显示顶部应用程序栏以在达到完整高度关闭抽屉。

    2.4K80
    领券