一. 簡(jiǎn)介
抽屜(通常用于導(dǎo)航切換)是通過(guò)renderNavigationView方法渲染的身腻,并且DrawerLayoutAndroid的直接子視圖會(huì)成為主視圖(用于放置你的內(nèi)容)烘豹。導(dǎo)航視圖一開(kāi)始在屏幕上并不可見(jiàn)肾扰,不過(guò)可以從drawerPosition指定的窗口側(cè)面拖拽出來(lái),并且抽屜的寬度可以使用drawerWidth屬性來(lái)指定特铝。
二. 屬性
- drawerLockMode enum('unlocked', 'locked-closed', 'locked-open')
設(shè)置抽屜的鎖定模式镊掖。有三種狀態(tài):
unlocked (默認(rèn)值)缎除,意味著此時(shí)抽屜可以響應(yīng)打開(kāi)和關(guān)閉的手勢(shì)操作膝但。
locked-closed,意味著此時(shí)抽屜將保持關(guān)閉策泣,不可用手勢(shì)打開(kāi)馅扣。
locked-open,意味著此時(shí)抽屜將保持打開(kāi)着降,不可用手勢(shì)關(guān)閉。
無(wú)論抽屜處于那種狀態(tài)拗军,都仍然可以調(diào)用openDrawer/closeDrawer這兩個(gè)方法打開(kāi)和關(guān)閉任洞。 - drawerPosition enum(DrawerConsts.DrawerPosition.Left, DrawerConsts.DrawerPosition.Right)
指定抽屜可以從屏幕的哪一邊滑入。 - drawerWidth number
指定抽屜的寬度发侵,也就是從屏幕邊緣拖進(jìn)的視圖的寬度交掏。 - keyboardDismissMode enum('none', "on-drag")
指定在拖拽的過(guò)程中是否要隱藏軟鍵盤(pán)。
none (默認(rèn)值)刃鳄,拖拽不會(huì)隱藏軟鍵盤(pán)盅弛。
on-drag 當(dāng)拖拽開(kāi)始的時(shí)候隱藏軟鍵盤(pán)。 - onDrawerClose function
每當(dāng)導(dǎo)航視圖(抽屜)被關(guān)閉之后調(diào)用此回調(diào)函數(shù)叔锐。 - onDrawerOpen function
每當(dāng)導(dǎo)航視圖(抽屜)被打開(kāi)之后調(diào)用此回調(diào)函數(shù)挪鹏。 - onDrawerSlide function
每當(dāng)導(dǎo)航視圖(抽屜)產(chǎn)生交互的時(shí)候調(diào)用此回調(diào)函數(shù)。 - onDrawerStateChanged function
每當(dāng)抽屜的狀態(tài)變化時(shí)調(diào)用此回調(diào)函數(shù)愉烙。抽屜可以有3種狀態(tài):
idle(空閑)讨盒,表示現(xiàn)在導(dǎo)航條上沒(méi)有任何正在進(jìn)行的交互。
dragging(拖拽中)步责,表示用戶正在與導(dǎo)航條進(jìn)行交互返顺。
settling(唾骺啵靠中),表示用戶剛剛結(jié)束與導(dǎo)航條的交互遂鹊,導(dǎo)航條正在結(jié)束打開(kāi)或者關(guān)閉的動(dòng)畫(huà)振乏。 - renderNavigationView function
此方法用于渲染一個(gè)可以從屏幕一邊拖入的導(dǎo)航視圖。
三. 示例
render(){ var navigationView = ( <View style={{flex: 1, backgroundColor: '#ff0'}}> <Text style={styles.font}>我是抽屜秉扑!</Text> </View> ); return ( <DrawerLayoutAndroid drawerWidth={250} drawerPosition={DrawerLayoutAndroid.positions.right} renderNavigationView = {()=>navigationView} > <View style={styles.flex}> <Text style={styles.font}>Hello World !</Text> </View> </DrawerLayoutAndroid> ); }
效果
DrawerLayoutAndroid_01.png
向右拉動(dòng)抽屜
DrawerLayoutAndroid_02.png