我使用的是最新版本的UI (ver )。1.3.1)。此更新版本应支持操作栏重叠。我正在使用演示的这里示例来重新处理现有的抽屉实现。我遇到的问题是,我曾经完全正常工作的按钮在更新后就不再工作了。为了处理这个问题,我尝试调用toggleDrawerState(),但是当我试图获得对抽屉的引用时,它失败了。我的另一个问题是抽屉内容不再从我的小部件目录加载,下面是我的代码示例
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来访问抽屉是不正确的,希望有人能给我指明正确的方向。
发布于 2016-12-02 12:31:17
在使用ActionBar的“Showovercontent”功能的场景中,不再将RadSideDrawer添加到页面的content中,而是添加到自定义DrawerPage的属性中,这就是为什么不能再使用Page的.getViewById()方法的原因。在这个场景中,您可以简单地将页面转换为DrawerPage,并直接使用它的sideDrawer属性,即XML中声明的RadSideDrawer。例如:
SideDrawer.prototype.toggleDrawer = function() {
var page = topmost().currentPage;
page.sideDrawer.toggleDrawerState();
};https://stackoverflow.com/questions/39237771
复制相似问题