1. 程式人生 > >React-Native進階_4.底部標籤欄TabBar

React-Native進階_4.底部標籤欄TabBar


原生專案中,我們對底部Tab 很熟悉,點選Tab標籤可以切換頁面,那麼在React-Native 中我們該怎麼實現呢。

在查了文件後,我們找到了一個TabBarIos ,這個是ios 下使用的Tab 標籤,但是沒有找到Android 可以使用的,因此 我們需要自己實現,或者使用第三方的,這裡,剛接觸React不太會自己實現,因此使用github上開源的react-native-tab-navigator,來實現切換的功能。

使用步驟:


安裝

Make sure that you are in your React Native project directory and run:

npm install react-native-tab-navigator --save

使用

Import TabNavigator as a JavaScript module:

import TabNavigator from 'react-native-tab-navigator';

This is an example of how to use the component and some of the commonly used props that it supports:

<TabNavigator>
  <TabNavigator.Item
    selected={this.state.selectedTab === 'home'}
    title=
"Home" renderIcon={() => <Image source={...} />} renderSelectedIcon={() => <Image source={...} />} badgeText="1" onPress={() => this.setState({ selectedTab: 'home' })}> {homeView} </TabNavigator.Item> <TabNavigator.Item selected={this.state.selectedTab
=== 'profile'} title="Profile" renderIcon={() => <Image source={...} />} renderSelectedIcon={() => <Image source={...} />} renderBadge={() => <CustomBadgeView />} onPress={() => this.setState({ selectedTab: 'profile' })}> {profileView} </TabNavigator.Item> </TabNavigator>

See TabNavigatorItem's supported props for more info.

/**
 * tabbar  demo
 */

'use strict'
import TabNavigator from 'react-native-tab-navigator'
import React, {Component} from 'react';
import styles from '../Styles/Main';
import MovieList from './MovieList';
import {
    View,
    Image,
}from 'react-native';
import USBox from "./USBox";
const TAB_NORMAL_1=require('../Images/bottom_bar_01.png');
const TAB_PRESS_1 =require('../Images/bottom_bar_01_selected.png');
const TAB_NORMAL_2=require('../Images/bottom_bar_02.png');
const TAB_PRESS_2=require('../Images/bottom_bar_02_selected.png');
export default class TabBarComponent extends Component{

    constructor(props) {
        super(props);
        this.state={
            selectedTab:'home',
        }
    }
        render(){
            return(
                <View  style={styles.Container}>

                    <TabNavigator>
                        <TabNavigator.Item
                            selected={this.state.selectedTab === 'home'}
                            title="Home"
                            renderIcon={() => <Image source={TAB_NORMAL_1} style ={styles.icon} />}
                            renderSelectedIcon={() => <Image source={TAB_PRESS_1}style ={styles.icon}  />}
                            badgeText="1"
                            onPress={() => this.setState({ selectedTab: 'home' })}>
                            <MovieList />
                        </TabNavigator.Item>
                        <TabNavigator.Item
                            selected={this.state.selectedTab === 'profile'}
                            title="Profile"
                            renderIcon={() => <Image source={TAB_NORMAL_2} style ={styles.icon} />}
                            renderSelectedIcon={() => <Image source={TAB_PRESS_2} style ={styles.icon} />}

                            onPress={() => this.setState({ selectedTab: 'profile' })}>
                            <USBox />
                        </TabNavigator.Item>
                    </TabNavigator>
                </View>
            );
    }
}

實現Tab切換功能的程式碼就是 return 中的TabNavigator ,這裡我添加了兩個Tab標籤。

標籤構建基本介紹:

selected: bool型,是否選中狀態,可使用setState進行控制,預設false
title: 標題,String型別,非必填
renderIcon: 必填項,即圖示,但為function型別,所以這裡需要用到Arrow Function
renderSelectedIcon: 選中狀態的圖示,非必填,也是function型別
onPress: function型,即點選事件的回撥函式,這裡需要控制的是state,而切換頁面已經由控制元件本身幫我們實現好了

ps:記得在構造方法中指定預設選中標籤: selectedTab。

指定兩個Tab 切換要展示的頁面  <MovieList />和 <USBox />。

實現效果:

原始碼下載

---------------歡迎各位大神加群

----------------Android交流群:230274309

-----------------------------期待大神們的到來

------------------------一---起分享,一起進步!需要你們



相關推薦

React-Native_4.底部標籤TabBar

原生專案中,我們對底部Tab 很熟悉,點選Tab標籤可以切換頁面,那麼在React-Native 中我們該怎麼實現呢。在查了文件後,我們找到了一個TabBarIos ,這個是ios 下使用的Tab 標籤,但是沒有找到Android 可以使用的,因此 我們需要自己實現,或者使用

React Native(簡單精緻的底部導航):使用react-native-tab-navigator實現底部導航

實現效果如下:           點選選項卡可以切換並且改變上面頁面的顏色、選中圖示的顏色、圖示   首先需要安裝: npm install react-native-tab-navigator --save

react-redux

react-redux進階一、 安裝: npm install redux react-redux 二、入口文件:index.jsx: 引入: 創建reducer: 創建容器: 將容器綁定到屬性: 完整代碼: var React = require(‘react‘) var ReactDom = re

React實戰45講

課程目錄: 第一章 :React 基礎 01 | React出現的歷史背景及特性介紹 02 | 以元件方式考慮UI的構建 03 | JSX 的本質 : 不是模板引擎,而是語法糖 04 | React元件的生命週期及其使用場景 05 | 理解 Virtual DOM 及 key 屬性的作用 06 |

React Native:自定義一個導航,改變狀態列背景,隱藏狀態列

設計開發過程中,導航欄都會有所不同,這時候使用RN就需要自定義一個想要的導航欄了,RN中文網有講專門ios的導航欄(NavigatorIOS),可以不用自定義。 首先定義自定義導航欄的一些屬性的約束,記得npm install --save prop-types然後引入import Prop

React-router

路由進階 1.多級路由,和之前的思想一樣,在子路由裡面繼續寫Route,繼續掛載元件,就可以實現多級路由 比如這樣:class Food extends Component{ render() {

Android----------沉浸式標題實現的學習

1. 需注意只有5.0以上適用,以下需要適配處理,否則程式會崩掉。 一、values-v19/styles.xml 無效果,僅防止低版本崩掉 <resources> <!--values-v19。v19 開始有 android:windowTra

Android佈局演示之底部標籤

在很多Android的程式的佈局中需要在底部放上一個導航用的標籤欄,但是Android本身並沒有像iPhone SDK那樣提供相關的佈局物件來實現這個功能,不過沒關係,我們可以來自己實現這個佈局, 佈局實現思路: 用一個LinearLayout來裝下所有的標籤按鈕,同時設定

react-native 的 TabBarIOS 元件(底部選擇器)

方法一 : 這是在 react-native 中文官網上的例子,親測功能效果很不錯,推薦使用 1. 建立一個  tabbar.js   檔案 'use strict'; var React = require('re

React Native】FlatList——實現帶搜尋的列表

實現效果: 實現: 搜尋框InputBox 列表:FlatList 程式碼: import React, { Component } from 'react'; import { View, TextInput, FlatList, StyleSheet

android 底部標籤CommonTabLayout搭建專案底部選單(帶訊息提醒)

大家在開發專案的時候,如果新開發一個app,採用這種標籤欄模式的產品,需要搭建底部選單。實現起來很簡單,而且可以有訊息提醒功能。話不多說,直接上程式碼:核心的CommonTabLayout  自定義的FrameLayoutpackage com.example.commont

iOS開發-:JPush設定標籤與別名的API

標籤與別名 API (iOS) 功能說明 溫馨提示,設定標籤別名請注意處理call back結果。 只有call back 返回值為 0 才設定成功,才可以向目標推送。否則伺服器 API 會返回1011錯誤。所有回撥函式都在主執行緒執行。 提供幾個相關 AP

vue自定義底部導航Tabbar

如圖所示,要完成類似的一個底部導航切換。 首先。我們需要分為5個大的VUE檔案。可以根據自己的習慣來放在不同的位置。 我將5個主要的VUE檔案放在了5個不同的資料夾 然後,在元件資料夾裡新建Tabbar.vue /以及Item.vue檔案 Item.vue檔案

微信小程式之底部導航——tabBar

微信的開發文件裡有,很多人也寫了,自己寫一遍,加深印象罷! 在學習Android的時候,被模仿一個app的介面,實現其UI。而一般來說,總是避免不了導航欄的。 比較大眾化的,就是底部導航欄啦,而實現的方式也是非常的多,如:Fragment+ViewPage Or 來一個Ra

【搭建react-native專案框架】4.自定義TabBar中間按鈕,實現播放時旋轉動畫

本節只講解如何自定義TabBar的中間按鈕,以及播放時旋轉動畫的實現。 還是先來看效果圖 其實思路很簡單,首先要使TabBar把中間按鈕的位置空出來,然後擺上一個懸浮的按鈕,就能實現中間按鈕了。 1.設定CustomTabBar的placeMiddle屬性為

React Native Android原生方向

雖然說react native的設計初衷是為了敏捷開發,write once,run anywhere,但是還是開放了原生接入這一高階功能,而原生也是一位這個開發方向一個繞不過去的坎,今天先跑了一下流程,總結一下先 1、react-native init mengft_module

React Native—使用ScrollableTabView實現APP底部導航(帶訊息圓點)

icon_selected color:#d81e06 icon_unselected color:#515151 一、前言 這段時間在公司開始搞React Native開發,要對APP的主頁底部導航欄進行替換,尋找了多種方法,最後使用react-native-scro

react-native flatlist 的使用 (頭尾,間隔元件和滾動事件)

 0.43之後 RN添加了Flatlist元件,作為ListView的增強版,FlatList有著很強的效能上的優勢,而且使用起來也更簡單。這裡著重介紹一下以下東西:1. 新增頭部元件,2. 新增尾部元

React-Native鍵盤遮擋問題發現

我在前面也寫了一篇關於鍵盤遮擋問題的解決方案,這次的原理也差不多,不過在後續的研究中發現官方給了一個有意思的元件叫 KeyboardAvoidingView。然後就動手去試了一試,然而效果並不好!具體用法可以參考這裡:點選開啟連結 不過隨著RN的更新,這個官網肯定會解決

ReactNativereact-native-storage的使用及封裝

本篇部落格將帶大家展開reactnative中關於資料持久化儲存的學習。其中涉及到了nodejs的語法的相關知識,也稍做介紹。好了,廢話不多說。在androind中資料的持久化儲存用的比較多的就是shareperferce,通過shareperferce會在手機