NATIVESCRIPT - Core (JS) - Хотите скрыть TabView на странице входа - PullRequest
1 голос
/ 13 марта 2019

Я работаю в приложении Nativescript, используя Javascript.В Angular есть эта Page-Routing, чтобы привести пользователя на страницу входа без TabView.Как реализовать это в приложениях на основе Javascript?Или есть шанс спрятать TabView на страницах?

Было бы неплохо получить ответ.В настоящий момент я не могу найти никакой полезной информации в Интернете.

С уважением, Тобиас

1 Ответ

0 голосов
/ 13 марта 2019

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;

Образец игровой площадки

...