微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android 设备上的 OnScroll 动画不流畅

如何解决Android 设备上的 OnScroll 动画不流畅

我想在用户滚动页面时冻结客户资料组件,因此我将 scrollY 值设置为 translateY 属性以避免组件向上移动。但是,在Android设备上,当用户滚动速度稍快时,即使我已经添加useNativeDriver: true,组件也会变得有点不稳定。

真的感激,如果有人可以提供帮助,已经挣扎了好几天了。

以下是整个屏幕的代码

  const scrollY = React.useRef(new Animated.Value(0)).current;

  <Animated.ScrollView
    scrollEventThrottle={16}
    automaticallyAdjustContentInsets={false}
    contentContainerStyle={{ flexGrow: 1 }}
    contentInsetAdjustmentBehavior="automatic"
    bounces={false}
    showsverticalScrollIndicator={false}
    onScroll={Animated.event(
      [{ nativeEvent: { contentOffset: { y: scrollY } } }],{ useNativeDriver: true }
    )}
  >
    <Animated.View
      style={{
        width: deviceWidth,height: 250,backgroundColor: 'lightgrey',paddingHorizontal: 30,justifyContent: 'center',alignItems: 'center',transform: [
          {
            translateY: scrollY
          }
        ]
      }}
    >
      <View
        style={{
          borderRadius: 100 / 2,width: 100,height: 100,backgroundColor: 'white',marginBottom: 20
        }}
      ></View>
      <Text style={{ marginBottom: 5,fontSize: 22 }}>Chris groves</Text>
      <Text style={{ fontSize: 30,fontWeight: 'bold' }}>$ 190.83</Text>
    </Animated.View>
    <View
      style={{
        backgroundColor: 'white',alignItems: 'center'
      }}
    >
      <View
        style={{
          height: 200,width: 350,backgroundColor: 'red',marginVertical: 30
        }}
      />
      <View
        style={{
          height: 200,marginBottom: 30
        }}
      />
      <View
        style={{
          height: 200,marginBottom: 30
        }}
      />
      <View style={{ height: 200,backgroundColor: 'red' }} />
    </View>
  </Animated.ScrollView>

演示视频以便更好地理解: Demo Video

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。