加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

react-native 标题随页面滚动显示和隐藏

发布时间:2020-12-15 09:31:18 所属栏目:百科 来源:网络整理
导读:效果图如下: 代码实现: import React,{Component} from 'react';import { ScrollView,Text,View,FlatList,} from 'react-native';export default class Home extends Component { state = { dataObj: [ {dat: 123},{dat: 123},],}; _onScroll(event) { let

效果图如下:

代码实现:

import React,{Component} from 'react';
import {
    ScrollView,Text,View,FlatList,} from 'react-native';

export default class Home extends Component {
   
    state = {
        dataObj: [
            {dat: 123},{dat: 123},],};

    _onScroll(event) {
        let y = event.nativeEvent.contentOffset.y;
        let opacityPercent = y / 250;
        if (y < 250) {
            this.refs.title.setNativeProps({
                style: {
                    opacity: opacityPercent,},});
        } else {
            this.refs.title.setNativeProps({
                style: {
                    opacity: 1,});
        }
    }

    _keyExtractor = (item,index) => index.toString();

    renderItemView = ({item}) => {
        return <View style={{height: 100}}>
            <Text>{item.dat}</Text>
        </View>;
    };

    render() {
        return (
            <View style={{flex: 1}}>
                <ScrollView
                    scrollEventThrottle={16}
                    onScroll={(event) => this._onScroll(event)}
                    style={{flex: 1}}
                >
                    <View style={{width: '100%',height: 300,backgroundColor: '#8aa5ff'}}/>

                    <FlatList
                        keyExtractor={this._keyExtractor}
                        data={this.state.dataObj}
                        renderItem={this.renderItemView}
                    />
                </ScrollView>
                <View ref='title' style={{
                    height: 50,width: '100%',backgroundColor: '#4aa37c',position: 'absolute',top: 0,left: 0,justifyContent: 'center',alignItems: 'center',opacity: 0,}}>
                    <Text style={{color: '#fff',fontSize: 18,fontWeight: 'bold'}}>主&nbsp;页</Text>
                </View>
            </View>
        );
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读