美文网首页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