2016-04-21 79 views
2

我有一个简单的html文件:如何用angular2和typescript隐藏android操作栏?

<StackLayout orientation="vertical" actionBarHidden="true"> 
     <Image src="res://buy" stretch="none" horizontalAlignment="center"></Image> 
</StackLayout> 

但是当我使用:

<Page actionBarHidden="true"> 
    <StackLayout orientation="vertical"> 
     <Image src="res://buy" stretch="none" horizontalAlignment="center"></Image> 
    </StackLayout> 
</Page> 

它打破了网页.. 不是隐藏操作栏和有内容之间的巨大利润率行动酒吧。

我使用angular2和打字稿为我的应用程序。

我的错误是什么?

任何帮助非常感谢!

回答

4

您可以指定在组件JS的页面属性,像这样的东西:

export class HomePage implements OnInit { 
    page: Page; 
    ngOnInit() { 
     this.page = <Page>topmost().currentPage; 
     this.page.actionBarHidden = true; 
    } 
} 

你阿洛斯需要导入import {topmost} from "ui/frame";import {Page} from "ui/page";

这样你就不需要标签(它们隐含在Angular 2组件中)。

我希望有帮助!

另外,为了跟上Brad关于自闭标签的评论 - 你会发现,使用Angular,明确的结束标签(就像你在做的那样)工作得更好。

+0

谢谢,但现在我得到的错误属性页面不存在类型的HomePage(我的课程) – olivier

+0

是的,我发现,以及,谢谢 – olivier

+0

你需要指定一个页面,我会更新我的代码。 –

0

财产actionBarHidden只适用于<Page>组件。不要以为你可以将它应用于<StackLayout>。您也不必在<StackLayout>上指定orientation="vertical",默认情况下它是垂直的。除非有你试图实现一个特定用例,此处不再赘述:)

https://docs.nativescript.org/ApiReference/ui/page/Page.html

又一个提示 - 你可以自行关闭<Image />无需对</Image>标签。

+0

谢谢!你能解释我在哪里可以隐藏动作栏吗? – olivier

+0

你已经在一个片段中的''组件中拥有它。这是该房产工作的唯一地方,它位于我的第一条评论的文档页面。所以你不能在''上使用它。 –

+0

好的,谢谢,但我从这里复制它:https://github.com/NativeScript/NativeScript/blob/master/apps/action-bar-demo/pages/action-bar-hidden.xml – olivier

2

有一个更简单的解决方案。测试在角4.1.0和NativeScript 3.0.0

import { Page } from "ui/page"; 

export class AppComponent { 
    constructor(private page: Page) { 
     page.actionBarHidden = true; 
    } 
} 

您可以从您的组件的构造控制ActionBar的知名度。

StackOverflow回答:https://stackoverflow.com/a/39962992/2765346

+0

是的,这工作,但我不明白为什么我们需要导入另一个组件隐藏的东西... – Todor