2016-04-21 73 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

相關問題