導航器

2019-08-14 14:22 更新

在你的應用程序中使用 Navigator 來在不同場景之間過渡。為了實現(xiàn)這一功能,為導航器提供了路由對象來識別每一個場景,還提供了一個 renderScene 函數(shù),導航器可以用它來為給定的路線渲染場景。

為了改變場景的動畫或動作屬性,提供了一個 configureScene 道具來為給定的路由配置對象??吹綄Ш狡?。默認動畫及更多的關于場景配置選項的信息,請看 Navigator.SceneConfigs。

基本的使用

<Navigator
    initialRoute={{name: 'My First Scene', index: 0}}
    renderScene={(route, navigator) =>
      <MySceneComponent
        name={route.name}
        onForward={() => {
          var nextIndex = route.index + 1;
          navigator.push({
            name: 'Scene ' + nextIndex,            index: nextIndex,
          });
        }}
        onBack={() => {          if (route.index > 0) {
            navigator.pop();
          }
        }}
      />
    }
  />

導航方法

Navigator 有兩種方式進行導航。如果你有一個參考元素,你可以調用一些方法來觸發(fā)導航:

  • jumpBack()——在不需要卸載當前場景的情況下向后跳

  • jumpForward()——向前跳轉到路線堆棧中的下一個場景 -jumpTo(route)——過渡到一個現(xiàn)有的沒有被卸載的場景

  • push(route)——導航到一個新的場景,擠壓任何你能夠 jumpForward 的場景 -pop()——回歸并卸載當前場景 -replace(route)——用一個新路線替換當前場景

  • `replaceAtIndex(route,index)——取代一個由索引指定的場景

  • replacePrevious(route)——取代之前的場景

  • immediatelyResetRouteStack(routeStack)——用一組路線重置每個場景

  • popToRoute(route)——彈出一個由它的路線指定的特定的場景。這之后所有的場景將被卸載

  • popToTop()——彈出堆棧中的第一個場景,卸載其他場景

導航器對象

通過 renderScene 函數(shù) navigator 對象對場景是可用的。對象有所有的導航方法,以及一些實用程序:

  • parentNavigator——父導航對象的參考,在 props.navigator 中被傳遞

  • onWillFocus——用來向父導航器傳遞一個導航焦點事件

  • onDidFocus——用來向父導航器傳遞一個導航焦點事件

Props

Edit on GitHub

configureScene 函數(shù)型

可選功能,允許配置場景動畫和手勢。將由路線調用,且應該返回一個場景配置對象

(route) => Navigator.SceneConfigs.FloatFromRight

initialRoute 對象型

提供一個單一的“路線”來開始。路線是一個任意的對象,導航器將使用它在場景呈現(xiàn)之前確定每個場景。initialRoute 或 initialRouteStack 是必需的。

initialRouteStack [對象型]

提供一組路線來呈現(xiàn)最初的場景。如果沒有提供 initialRoute,那么該道具就會被需求。

navigationBar 節(jié)點型

以可選的方式提供一個能夠存留在場景之間轉換的導航欄

navigator 對象型

以可選的方式從父導航器提供 navigator 對象

onDidFocus 函數(shù)型

在場景過渡完成后或在最初安裝后該函數(shù)會被每個場景的新路線調用。這將覆蓋在 this.props.navigator 的onDidFocus處理程序上。

onItemRef 函數(shù)型

當場景參考發(fā)生變化時,該函數(shù)會被調用 (ref,indexInStack)

onWillFocus 函數(shù)型

將在安裝中和每個導航轉換之前發(fā)射目標路線,覆蓋this.props.navigator中的處理程序。這將覆蓋this.props.navigator 中的 onDidFocus 處理程序

renderScene 函數(shù)型

對于一個給定的路線哪一個場景會出現(xiàn)需要該函數(shù)。將由路線和 navigator 對象調用。

(route, navigator) =>  <MySceneComponent title={route.title} />

sceneStyle View#style

設置樣式,以應用于每個場景的容器中。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號