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的更新,這個官網肯定會解決
ReactNative進階之react-native-storage的使用及封裝
本篇部落格將帶大家展開reactnative中關於資料持久化儲存的學習。其中涉及到了nodejs的語法的相關知識,也稍做介紹。好了,廢話不多說。在androind中資料的持久化儲存用的比較多的就是shareperferce,通過shareperferce會在手機