react-native構建基本頁面1---主頁:tab欄

配置Tab欄react

配置Tab欄的圖標android

注意:使用圖標,須要接收 license;git

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

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

// 導入 Tabbar 相關的組件
import TabNavigator from 'react-native-tab-navigator'

// 導入 Tab 欄的組件
import Home from './components/tabbars/Home.js'
import Search from './components/tabbars/Search.js'
import ShopCar from './components/tabbars/ShopCar.js'
import Me from './components/tabbars/Me.js'

// 當修改了 項目根目錄中,Android 目錄下的任何文件以後,若是想要看項目效果,不要使用 react-native start了,而是須要再一次編譯安裝一下項目 ,運行 react-native run-android
// 導入圖標相關的組件
import Icon from 'react-native-vector-icons/FontAwesome'

export default class App extends Component {
  constructor(props) {
    super(props)
    this.state = {
      selectedTab: 'home' // 選中的tab欄名稱
    }
  }

  render() {
    return (
      <View style={styles.container}>

        {/* Tab欄區域 */}
        <TabNavigator>

          {/* 主頁的 Tab欄 */}
          <TabNavigator.Item
            selected={this.state.selectedTab === 'home'} // 判斷當前的 tab欄是否被選中的
            title="主頁" // 表示 tabbar 上展現的內容
            renderIcon={() => <Icon name="home" size={25} color="gray" />} // 未選中狀態下,展現的圖標
            renderSelectedIcon={() => <Icon name="home" size={25} color="#0079FF" />} // 選中狀態下展現的圖標
            onPress={() => this.setState({ selectedTab: 'home' })} // 點擊Tab欄的操做
          >
            <Home></Home>
          </TabNavigator.Item>

          {/* 搜索的 Tab欄 */}
          <TabNavigator.Item
            selected={this.state.selectedTab === 'search'}
            title="搜索"
            renderIcon={() => <Icon name="search" size={25} color="gray" />}
            renderSelectedIcon={() => <Icon name="search" size={25} color="#0079FF" />}
            onPress={() => this.setState({ selectedTab: 'search' })}
          >
            <Search></Search>
          </TabNavigator.Item>

          {/* 購物車的 Tab欄 */}
          <TabNavigator.Item
            selected={this.state.selectedTab === 'shopcar'}
            title="購物車"
            badgeText="0"
            renderIcon={() => <Icon name="shopping-cart" size={25} color="gray" />}
            renderSelectedIcon={() => <Icon name="shopping-cart" size={25} color="#0079FF" />}
            onPress={() => this.setState({ selectedTab: 'shopcar' })}
          >
            <ShopCar></ShopCar>
          </TabNavigator.Item>

          {/* Me的 Tab欄 */}
          <TabNavigator.Item
            selected={this.state.selectedTab === 'me'}
            title="Me"
            renderIcon={() => <Icon name="user" size={25} color="red" />}
            renderSelectedIcon={() => <Icon name="user-o" size={25} color="#0079FF" />}
            onPress={() => this.setState({ selectedTab: 'me' })}
          >
            <Me></Me>
          </TabNavigator.Item>

        </TabNavigator>

      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1
  }
});


// 不推薦使用 npm 下載包,首先:下載速度慢,其次,若是是 npm 5.x,在裝新包的時候,會把一些老包刪除
// 推薦使用 facebook 開發的 yarn 來安裝包   yarn add 包名
相關文章
相關標籤/搜索