【问题标题】:Unusual behaviour in loaded event in AndroidAndroid中加载事件中的异常行为
【发布时间】:2019-08-22 08:27:46
【问题描述】:

我想知道您是否可以帮助我解决以下问题。我试图追踪用户在任何时候点击了哪个标签/页面。我正在使用(加载的)事件来追踪我登陆的页面。我的代码在 iOS 上就像一个魅力,但在 Android 上,所有事件调用都非常奇怪,它们要么同时运行,要么根本不运行。这种行为有什么想法吗?谢谢。

对于 Tab1 页面:

在我的 tab1.html 文件上

<StackLayout (loaded)="onTab1ViewLoaded()">
...
</StackLayout>

在 tab1.ts 文件上

onTab1ViewLoaded() {
console.log("Tab1 loaded");
}

其余 3 个标签的代码类似。

提醒一下,此代码在 iOS 中运行良好,但在 Android 中单击 tab2 或 tab3 我看到在控制台日志中触发了所有三个事件。有时,根本没有控制台日志事件。任何想法为什么?谢谢。

更新

tab.html 页面

<TabView androidOffscreenTabLimit="0" androidTabsPosition="bottom" (selectedIndexChanged)="onSelectedIndexChanged($event)">    

    <page-router-outlet *tabItem="{title: 'Tab1'}" name="Tab1">
    </page-router-outlet>

    <page-router-outlet *tabItem="{title: 'Tab2'}" name="Tab2">
    </page-router-outlet>

    <page-router-outlet *tabItem="{title: 'Tab3'}" name="Tab3"> 
    </page-router-outlet>

</TabView>

tab.ts 页面

onSelectedIndexChanged(args) {
        if (args.newIndex != args.oldIndex) {
            console.log(args.newIndex);            
        }
    }

知道在导航 TabView 时如何找出在哪个选项卡上吗?

【问题讨论】:

    标签: android ios angular nativescript


    【解决方案1】:

    Android 上的选项卡已预加载以支持滑动到下一个选项卡,如果您想逐个加载它,可以在 TabView 上使用 androidOffscreenTabLimit="0",更多信息在这里: https://docs.nativescript.org/angular/ui/ng-ui-widgets/tab-view

    但我建议您使用 ngModel 或 selectedIndexChanged 属性来跟踪页面。

    【讨论】:

    猜你喜欢
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    相关资源
    最近更新 更多