首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将活动指示器叠加到NativeScript中

如何将活动指示器叠加到NativeScript中
EN

Stack Overflow用户
提问于 2019-06-08 00:06:05
回答 1查看 1.2K关注 0票数 0

我的问题

经过几个小时的尝试和错误,我终于得到了我的页面,使之看起来像我想要的样子。然而,现在我试图在页面加载时添加一个活动指示器旋转器,并且我有很长的时间让它显示出来。

这里是我指的页面:

底部按钮是固定的,不会滚动。我觉得这是我的问题之一。

我的XML

代码语言:javascript
运行
复制
<Page loaded="pageLoaded" class="page"
    xmlns="http://www.nativescript.org/tns.xsd">
    <ActionBar class="action-bar customActionBar" >
        <NavigationButton ios:visibility="collapsed" icon="res://menu" tap="onDrawerButtonTap"></NavigationButton>
        <ActionItem icon="res://navigation/menu" 
            android:visibility="collapsed" 
            tap="onDrawerButtonTap"
            ios.position="left"></ActionItem>
        <Label class="action-bar-title" text="Signup"></Label>
    </ActionBar>
    <DockLayout width="100%" height="100%" backgroundColor="lightgray" class="page-gradient"
        stretchLastChild="false">
        <Button id="signUpButton" class="submitButton h2 border" text="{{ showDetails ? 'Hide' : 'Next' }}" height="60" dock="bottom"
            tap="onSignupButtonTap" returnKeyType="next"/>
        <!-- content -->
        <StackLayout dock="top" width="100%" height="75" >
            <Image class="" src="~/images/signup/step-1-on.png" stretch="fill" />
            <Image style="margin-top: 15"  src="~/images/signup/progress.png" stretch="fill" />
        </StackLayout>
        <ScrollView>
            <StackLayout class="">
                <Label text="Choose Your Program" class="h3 ChooseHeader" width="100%"/>
                <Image src="~/images/chooseYourCourse/diabetes.png" 
        stretch="aspectFit" 
        class="productImage  "
        tap="onDiabetesTap"
        id="diabetes"
        name="diabetes"></Image>
                <Image src="~/images/chooseYourCourse/generalHealth.png" 
            stretch="aspectFit" 
            class="productImage "
            tap="tapGeneral" borderRadius="30" borderStyle="solid"></Image>
                <Image src="~/images/chooseYourCourse/hypertention.png" 
            stretch="aspectFit" 
            class="productImage"
            tap="tapHypertention"></Image>
                <Label class="m-10 p-10" text="Our programs adhere to the most current medical research."/>
            </StackLayout>
        </ScrollView>
        <!-- end content -->
    </DockLayout>
     <StackLayout verticalAlignment="middle">
        <ActivityIndicator busy="{{ isBusy }}" />
    </StackLayout>
</Page>

这里是我的代码隐藏:

代码语言:javascript
运行
复制
const Signup2ViewModel = require("./signup2-view-model");
const app = require("tns-core-modules/application");
const frameModule = require("tns-core-modules/ui/frame");
var dialogs = require("tns-core-modules/ui/dialogs");
const topmost = require("tns-core-modules/ui/frame").topmost;
var gesturesModule = require("tns-core-modules/ui/gestures");
const view = require("tns-core-modules/ui/core/view");
const ActivityIndicator = require("tns-core-modules/ui/activity-indicator").ActivityIndicator;
var signup2ViewModel = new Signup2ViewModel({ isBusy: false });

var card;
var exp;
var cvc;
var signUpButton;

function onNavigatingTo(args) {
    const page = args.object;
    pageArgs = page;
    page.bindingContext = signup2ViewModel;
    setTimeout(() => {
        console.log("here");
        signup2ViewModel.isBusy = true;
        // Hides the soft input method, ususally a soft keyboard.
    }, 5100);

}

exports.loaded = function (args) {
    var page = args.object;
    page.bindingContext = signup2ViewModel;
    signup2ViewModel.isBusy = false;
};

function onDiabetesTap(args) {
    console.log(args);
    //alert("Diabetes");

    args.object.page.frame.navigate({
        moduleName: "./signup3/signup3-page",
        animated: true,
        transition: {
            name: "slideLeft",
            duration: 380,
            curve: "easeIn"
        }
    });

}

function onDrawerButtonTap(args) {
    const sideDrawer = app.getRootView();
    sideDrawer.showDrawer();
}

function onSignupButtonTap(args) {
    signup2ViewModel.set("authenticating", true);
}

exports.onDiabetesTap = onDiabetesTap;
exports.onSignupButtonTap = onSignupButtonTap;
exports.onDrawerButtonTap = onDrawerButtonTap;

正如您所看到的,我将isBusy设置为true onNavigateTo,在加载时设置为false。

不起作用了,你能帮我指出正确的方向吗?我确实需要帮助。

谢谢。

约翰

EN

回答 1

Stack Overflow用户

发布于 2019-06-08 04:32:56

Page组件不能有多个子元素。尝试用GridLayout包装整个页面内容。

代码语言:javascript
运行
复制
<Page>
  ...
  <GridLayout>
    <DockLayout ...
    </DockLayout>
    <ActivityIndicator busy="{{ isBusy }}" />
  </GridLayout>
</Page>

如果你仍然有问题,请分享一个最小的游乐场样本。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56502394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档