2016-08-30 86 views
1

我正在使用最新版本的Telerik-Nativescript-UI(版本1.3.1)。這個更新版本應該支持操作欄重疊。我使用示例here的示例來重新工作我現有的抽屜實現。我遇到的問題是,一旦完全正常運行,切換抽屜按鈕在更新後不再有效。我試圖調用toggleDrawerState()來處理這個問題,但是當我嘗試獲取對抽屜的引用時,它失敗了。我的另一個問題是抽屜的內容不再從我的插件目錄下面的負載是我的代碼如下toggledrawerState with Nativescript-telerik-ui幻燈片抽屜

XML查看

<dpg:DrawerPage 
    navigatedTo="onNavigatedTo" 
    navigatingTo="navigatingTo" 
    xmlns:dpg="nativescript-telerik-ui/sidedrawer/drawerpage" 
    xmlns:drawer="nativescript-telerik-ui/sidedrawer" 
    xmlns:widgets="shared/widgets" 
    xmlns="http://www.nativescript.org/tns.xsd"> 

    <page.actionBar> 
    <action-bar title="{{L('connections')}}"> 
     <!--<NavigationButton icon="res://back" tap="goBack" ios:visibility="collapsed" />  --> 
     <NavigationButton icon="res://menu" tap="toggleDrawer" ios:visibility="collapsed" /> 
     <action-bar.actionItems> 
     <ios> 
      <action-item icon="res://ic_menu" ios.position="left" tap="toggleDrawer" /> 
     </ios> 
     </action-bar.actionItems> 
    </action-bar> 
    </page.actionBar> 

    <dpg:DrawerPage.sideDrawer id=""> 
    <drawer:RadSideDrawer id="drawer"> 
     <drawer:RadSideDrawer.drawerContent> 
     <widgets:drawer-content /> 
     </drawer:RadSideDrawer.drawerContent> 
    </drawer:RadSideDrawer> 
    </dpg:DrawerPage.sideDrawer> 

    <StackLayout cssClass="mainContent"> 
     <Label text="test test test" textWrap="true" cssClass="drawerContentText"/> 

    </StackLayout> 
</dpg:DrawerPage> 

JS一個例子,我嘗試切換抽屜

SideDrawer.prototype.toggleDrawer = function() { 
    var page = topmost().currentPage; 
    page.getViewById("drawer").toggleDrawerState(); 
}; 

顯然試圖通過獲取the<drawer:RadSideDrawer id="drawer">附加的ID訪問抽屜是不正確的,希望有人能指出我在正確的方向上。

+0

你可以在這個例子中檢查代碼 - https://github.com/telerik/nativescript-ui-samples/tree/release/sdk/app/sidedrawer/over-navigation,在哪裏已經顯示如何使用ActionBar重疊功能 –

+0

@NikolayTsonev我有,但它沒有顯示如何正確使用toggleDrawerStateMethod。基於我的上述代碼,我不明白爲什麼我目前的切換功能的實現不起作用。我需要以不同的方式訪問抽屜嗎? –

回答

1

在場景中使用的是「顯示在動作條」的RadSideDrawer的功能,您將不再添加RadSideDrawer到頁面的content但到自定義DrawerPage的屬性,這就是爲什麼你不能再使用Page的.getViewById()方法。在這種情況下,您可以簡單地將頁面轉換爲DrawerPage,並直接使用它在XML中聲明的RadSideDrawer的屬性sideDrawer。例如像這樣:

SideDrawer.prototype.toggleDrawer = function() { 
    var page = topmost().currentPage; 
    page.sideDrawer.toggleDrawerState(); 
};