1

最新バージョンの Telerik-Nativescript-UI (ver. 1.3.1) を使用しています。この更新されたバージョンは、アクション バーのオーバーラップをサポートすることになっています。ここに示す例を使用して、既存の引き出しの実装を作り直しています。私が遭遇している問題は、以前は完全に機能していたトグル ドロワー ボタンが、更新後に機能しなくなったことです。これを処理するために toggleDrawerState() を呼び出そうとしていますが、ドロワーへの参照を取得しようとすると失敗します。私のもう1つの問題は、ドロワーのコンテンツがウィジェットディレクトリから読み込まれなくなったことです。これが私のコードの例です

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();
};

ID を添付してドロワーにアクセスしようとするのthe<drawer:RadSideDrawer id="drawer">は正しくないようです。誰かが私を正しい方向に向けてくれることを願っています。

4

1 に答える 1

1

RadSideDrawer の「ActionBar の上に表示」機能を使用しているシナリオでは、 を Page ではなく custom のプロパティに追加しているRadSideDrawerため、contentPageのメソッドDrawerPageを使用できなくなりました。.getViewById()このシナリオでは、Page を DrawerPage に単純にキャストsideDrawerし、XML で宣言された RadSideDrawer であるそのプロパティを直接使用できます。たとえば、次のようにします。

SideDrawer.prototype.toggleDrawer = function() {
  var page = topmost().currentPage;
  page.sideDrawer.toggleDrawerState();
};
于 2016-12-02T12:31:17.980 に答える