react-navigation3.0使用詳解

第一步:


import React, { Component } from 'react';

import {

  View,

  StyleSheet,

  Text,

  Button,

  Image

} from 'react-native';

import { createStackNavigator, createAppContainer } from 'react-navigation';

export default class HomePage extends Component{

  static navigationOptions = {

        title: 'Welcome',//在導航中顯示的標題內容

        tabBarLabel:'收藏',

        headerBackTitle:'lefts',

        headerLeft:'leftss',

        tabBarIcon:<Image source={require('./Resources/icon1.png')} style = {{width:40,height:40}}/>

    };

  render() {

    return (

      <View style= { styles.container}>

        <Text>'這是首頁'</Text>

        <Button title="go to two" onPress={() => this.props.navigation.navigate('Profile')} />

        <Button title="go to two" onPress={() => this.props.navigation.push('Profile')} />

      </View>

    );

  }

}

const styles = StyleSheet.create({

  container: {

    flex: 1,

    backgroundColor: 'red',

    justifyContent: 'center'

  },

});

第二部


import React, { Component } from 'react';

import {

  View,

  StyleSheet,

} from 'react-native';

import { createStackNavigator, createAppContainer ,createBottomTabNavigator} from 'react-navigation'

import Home from './Home';

import ProfileScreen from './ProfileScreen'

const TabNav = createBottomTabNavigator(

    {

        Home: {

            screen: Home,

        },

        Task: {

            screen: ProfileScreen,

        },

    },

    {

        tabBarOptions: {

            //當前選中的tab bar的文本顏色和圖標顏色

            activeTintColor: '#4BC1D2',

            //當前未選中的tab bar的文本顏色和圖標顏色

            inactiveTintColor: '#000',

            //是否顯示tab bar的圖標,默認是false

            showIcon: true,

            //showLabel - 是否顯示tab bar的文本,默認是true

            showLabel: true,

            //是否將文本轉換為大小,默認是true

            upperCaseLabel: false,

            //material design中的波紋顏色(僅支持Android >= 5.0)

            pressColor: '#788493',

            //按下tab bar時的不透明度(僅支持iOS和Android < 5.0).

            pressOpacity: 0.8,

            //tab bar的樣式

            style: {

                backgroundColor: '#fff',

                paddingBottom: 1,

                borderTopWidth: 0.2,

                paddingTop: 1,

                borderTopColor: '#ccc',

            },

            //tab bar的文本樣式

            labelStyle: {

                fontSize: 11,

                margin: 1

            },

            tabStyle: {

                height: 45

            },

            //tab 頁指示符的樣式 (tab頁下面的一條線).

            indicatorStyle: {height: 1},

        },

        //tab bar的位置, 可選值: 'top' or 'bottom'

        tabBarPosition: 'bottom',

        //是否允許滑動切換tab頁

        swipeEnabled: false,

        //是否在切換tab頁時使用動畫

        animationEnabled: false,

        //是否懶加載

        lazy: true,

        //返回按鈕是否會導致tab切換到初始tab頁? 如果是,則設置為initialRoute,否則為none。 缺省為initialRoute。

        backBehavior: 'none',

        initialRouteName: 'Home',

    });

  const navigator = createStackNavigator({

    Home: { screen: TabNav }

  })

const App = createAppContainer(navigator);

export default App;

第三部 在app.js


import React, {Component} from 'react';

import {Platform, StyleSheet, Text, View,Image} from 'react-native';

import MyNavgator from './MyNavgator';

export default class App extends Component {

  render() {

    return (

      <MyNavgator/>

    );

  }

}

const styles = StyleSheet.create({

  container: {

    backgroundColor: '#F5FCFF',

    alignItems: 'center',

  },

});

react-native run-ios 跑起來

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。