2016-08-30 54 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(); 
};