React native React Native scroll view动画标题:调整大小时更改布局的性能方法?

React native React Native scroll view动画标题:调整大小时更改布局的性能方法?,react-native,react-animated,React Native,React Animated,我一直在紧跟这篇文章,在平面列表的卷轴(注释列表,在卷轴Y上,减少标题)上设置标题大小的动画。它工作得很好(有时有点慢,但还可以) 现在,我想在调整大小时更改布局配置:当标题变小时,从一列传递到两列。但在我看来,要取得好成绩似乎很难 我想到了两种方法: 在页眉上使用onLayout,收听调整大小的高度,在高度插值的中间,更改样式类。这种方法在性能上代价很高,因为它每帧只启动一个布局侦听器,所以我的应用程序有很多bug 听ScrollY,在ScrollY的中间,换个班。与前面提到的问题相同,每个帧

我一直在紧跟这篇文章,在平面列表的卷轴(注释列表,在卷轴Y上,减少标题)上设置标题大小的动画。它工作得很好(有时有点慢,但还可以)

现在,我想在调整大小时更改布局配置:当标题变小时,从一列传递到两列。但在我看来,要取得好成绩似乎很难

我想到了两种方法:

  • 在页眉上使用onLayout,收听调整大小的高度,在高度插值的中间,更改样式类。这种方法在性能上代价很高,因为它每帧只启动一个布局侦听器,所以我的应用程序有很多bug

  • 听ScrollY,在ScrollY的中间,换个班。与前面提到的问题相同,每个帧检查滚动Y都会使我的滚动执行得非常慢

  • 有人认为在调整大小时更改视图布局更好吗

    多谢各位

    编辑:这里有一个onlayout事件的示例,称为“大量时间”,导致关闭


    对此,您应该使用
    onLayout

    如果您的应用程序因使用onLayout而出现问题,您应该调查原因,因为这并不是每个帧都调用的

    资料来源:

    在装载和布局更改时调用


    您应该为此使用
    onLayout

    如果您的应用程序因使用onLayout而出现问题,您应该调查原因,因为这并不是每个帧都调用的

    资料来源:

    在装载和布局更改时调用


    对事件进行去Bounce处理,这将确保事件不会在每一帧上触发。@SjoerddeWit从未听说过,但会尽快进行测试:)您是否谈论lodash函数[_Debounce]()?控制一个函数随时间执行的次数是编程中的一个通用概念。这里有一个很好的解释:对事件进行去抖动,这将确保事件不会在每一帧都被触发。@SjoerddeWit从未听说过这一点,但会尽快进行测试:)您是否谈论lodash函数[_Debounce]()?这是编程中的一个通用概念,用于控制一个函数随时间执行的次数。这里有一个很好的解释:确切地说,我的头正在滚动调整大小,所以onLayout事件不是每帧调用一次,而是每秒调用多次。为了更清楚,我用gif更新了我的问题。黄色是我的标题,当我在绿色视图上滚动时,我的标题必须调整大小。在左边,你可以看到Chrome调试器,onLayout在调整大小时被多次调用,正如文档“装载和布局更改时调用”中所述,但是onLayout侦听器会导致我的卷轴关闭。确切地说,我的标题在卷轴上调整大小,因此onLayout事件不是每帧调用一次,而是每秒调用多次。为了更清楚,我用gif更新了我的问题。黄色是我的标题,当我在绿色视图上滚动时,我的标题必须调整大小。在左边,你可以看到Chrome调试器,onLayout在调整大小时被多次调用,正如文档“装载和布局更改时调用”中所述,但是onLayout侦听器会导致我的卷轴关闭。