如何在Nativescript-Angular中创建NativeView?

时间:2019-12-06 09:42:58

标签: nativescript nativescript-angular

我正在使用Nativescript和Angular开发移动应用程序,但是在创建 headerView 并添加到 CFAlertDialog 内时遇到了问题(我正在使用插件 nativescript-cfalert-dialog )。

我创建了一项服务,以将其注入应用程序中的多个组件,就像这样

import * as application from 'tns-core-modules/application'

@Injectable()
export class PlayerDialogService {
...
    constructor() {
        const context = application.android.context as android.content.Context;
        this.generateAndroidNativeView(context)

    }

    private generateAndroidNativeView(context: android.content.Context) {
        this.usernameLabel = new android.widget.TextView(context)
        this.usernameLabel.setTextSize(20)

        this.fullNameLabel = new android.widget.TextView(context)
        this.fullNameLabel.setTextSize(16)

        this.playerImage = new android.widget.ImageView(context)
        this.playerImage.setMaxWidth(48)
        this.playerImage.setMaxHeight(48)

        this.textStackLayout = new android.widget.LinearLayout(context)
        this.textStackLayout.addView(this.usernameLabel)
        this.textStackLayout.addView(this.fullNameLabel)

        this.stackLayout = new android.widget.LinearLayout(context)
        this.stackLayout.addView(this.playerImage)
        this.stackLayout.addView(this.textStackLayout)
    }
}

事实是,每次加载对话框时(我打开一个注入了PlayerDialogService的组件/视图),都会收到此错误:

JS: ERROR TypeError: Cannot read property 'usernameLabel' of undefined

恐怕我没有传递正确的Context(尽管它不是一个空对象,也不是一个未定义的对象),但其中包含一个构造函数。那...我想念什么?

0 个答案:

没有答案