美文网首页React Native学习
react-native 实现header渐变

react-native 实现header渐变

作者: 我的昵称好听吗 | 来源:发表于2018-05-21 13:15 被阅读448次

react-native 项目中滚动的时候header透明渐变

image.png

实现方法

  • 通过ref属性的setNativeProps方法实现;
    在onScroll的时候,动态获取到当前滚动的位置,动态设置header的透明度;

class Index extends Component {
  constructor(props) {
    super(props);
  }
  _onScroll = (event) => {
    let Y = event.nativeEvent.contentOffset.y;
    console.log(Y);
    if (Y < 100) {
      st = Y*0.01;
    } else {
      st = 1;
    }
    this._refHeader.setNativeProps({
      opacity:st
    })
  }
  static navigationOptions = ({ navigation, screenProps }) => {
    return ({
      header: null
    })
  }
  render() {
    return (
      <View >
        <View ref={(e) => this._refHeader = e} style={{ opacity: 0, backgroundColor: "#fff", justifyContent: "center", alignItems: "center", height: 50, position: "absolute", left: 0, right: 0, zIndex: 2 }}><Text>首页</Text></View>
 <ScrollView 
      onScroll = {this._onScroll}
      scrollEventThrottle = {10}
      >...others code</ScrollView>
       ...others code
      </View>
    )
  }
}

相关文章

网友评论

  • _海角_:先感谢楼主,但是这种直接设置opacity 会将导航栏上子视图同时设置opacity属性,建议使用rgba 设置alpha来达到透明的效果。
    我的昵称好听吗:哈哈,对,我要的就是这样的,达到顶部的时候什么都不显示,但是账户中心类似功能(比如有设置等功能)你的方法合适,多谢
  • 旋风猫:楼主您好,请问有demo吗,谢谢

本文标题:react-native 实现header渐变

本文链接:https://www.haomeiwen.com/subject/gszxjftx.html