page-router-outlet
- это не что иное, как Frame
в базовом приложении.Если вы используете правую рамку, вы все равно можете избежать TabView на вашей странице входа.Структура будет выглядеть примерно так:
- App Root (Frame)
----- Страница входа в систему
----- TabView
-------- Рамка для каждого элемента представления вкладки, аналогично использованию page-router-outlet в Angular.
Если вы предпочитаете просто скрыть TabBar, вы можете сделать это
XML
<Page loaded="pageLoaded" class="page" xmlns="http://www.nativescript.org/tns.xsd">
<ActionBar title="Home" class="action-bar">
</ActionBar>
<TabView id="tabView" androidTabsPosition="bottom" selectedIndex="1">
<TabView.items>
<TabViewItem title="Tab 1">
<TabViewItem.view>
<StackLayout>
<Label class="m-5 h3" text="Label in Tab 1" />
<Button text="Show" class="btn btn-primary" tap="onShowButtonTap"></Button>
<Button text="Hide" class="btn btn-secondary" tap="onHideButtonTap"></Button>
</StackLayout>
</TabViewItem.view>
</TabViewItem>
<TabViewItem title="Tab 2">
<TabViewItem.view>
<StackLayout>
<Label class="m-5 h3" text="Label in Tab 2" />
<Button text="Show" class="btn btn-primary" tap="onShowButtonTap"></Button>
<Button text="Hide" class="btn btn-secondary" tap="onHideButtonTap"></Button>
</StackLayout>
</TabViewItem.view>
</TabViewItem>
</TabView.items>
</TabView>
</Page>
JS
var frameModule = require("tns-core-modules/ui/frame");
var HomeViewModel = require("./home-view-model");
var homeViewModel = new HomeViewModel();
function pageLoaded(args) {
var page = args.object;
page.bindingContext = homeViewModel;
}
function onShowButtonTap(args) {
var tabView = args.object.page.getViewById("tabView");
if (tabView.ios) {
tabView.viewController.tabBar.hidden = false;
} else if (tabView.android) {
tabView._tabLayout.setVisibility(android.view.View.VISIBLE);
}
}
function onHideButtonTap(args) {
var tabView = args.object.page.getViewById("tabView");
if (tabView.ios) {
tabView.viewController.tabBar.hidden = true;
} else if (tabView.android) {
tabView._tabLayout.setVisibility(android.view.View.GONE);
}
}
exports.pageLoaded = pageLoaded;
exports.onShowButtonTap = onShowButtonTap;
exports.onHideButtonTap = onHideButtonTap;
Образец игровой площадки