diff --git a/ui/action-bar/action-bar.android.ts b/ui/action-bar/action-bar.android.ts index 61fbdcb1e..f6d08153a 100644 --- a/ui/action-bar/action-bar.android.ts +++ b/ui/action-bar/action-bar.android.ts @@ -97,8 +97,8 @@ export class ActionBar extends common.ActionBar { if (!this._toolbar) { return; } - - if (this.page.actionBarHidden) { + + if (!this.page.frame || !this.page.frame._getNavBarVisible(this.page)) { this._toolbar.setVisibility(android.view.View.GONE); // If action bar is hidden - no need to fill it with items. @@ -304,4 +304,4 @@ function getIconVisibility(iconVisibility: string): boolean { default: return false; } -} +} \ No newline at end of file diff --git a/ui/frame/frame.android.ts b/ui/frame/frame.android.ts index 825048cf9..ed4fc9ee1 100644 --- a/ui/frame/frame.android.ts +++ b/ui/frame/frame.android.ts @@ -5,6 +5,7 @@ import trace = require("trace"); import observable = require("data/observable"); import utils = require("utils/utils"); import application = require("application"); +import types = require("utils/types"); global.moduleMerge(frameCommon, exports); @@ -346,7 +347,15 @@ export class Frame extends frameCommon.Frame { } public _getNavBarVisible(page: pages.Page): boolean { - return this._android.showActionBar; + if (types.isDefined(page.actionBarHidden)) { + return !page.actionBarHidden; + } + + if (this._android && types.isDefined(this._android.showActionBar)) { + return this._android.showActionBar; + } + + return true; } } @@ -520,9 +529,9 @@ var framesCache: Array> = new Array> class AndroidFrame extends observable.Observable implements definition.AndroidFrame { public rootViewGroup: android.view.ViewGroup; public hasOwnActivity = false; - public showActionBar = false; public frameId; + private _showActionBar = true; private _activity: android.app.Activity; private _owner: Frame; private _cachePagesOnNavigate: boolean; @@ -534,6 +543,19 @@ class AndroidFrame extends observable.Observable implements definition.AndroidFr framesCache.push(new WeakRef(this)); } + public get showActionBar(): boolean { + return this._showActionBar; + } + + public set showActionBar(value: boolean) { + if (this._showActionBar !== value) { + this._showActionBar = value; + if (this.owner.currentPage) { + this.owner.currentPage.actionBar.update(); + } + } + } + public get activity(): android.app.Activity { if (this._activity) { return this._activity;