     private var navigationLayoutInvalidated:Boolean = false;
     
     /**
-     *  Layout for the ActionBar navigation content group.
+     *  The default layout for the ActionBar navigation content group if
+     *  a view doesn't define one.
      *
      *  @default null
      *  

			actionBarVisibilityInvalidated = false;
		}
	}
    
    /**
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10.1
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
	public function showTabBar(animate:Boolean = true):void
	{
		if (tabBar && sections.length > 1 && !tabBar.visible)
		{
			animateTabBarVisbility = animate;
			tabBarVisibilityInvalidated = true;
			invalidateProperties();
		}
		else
		{
			tabBarVisibilityInvalidated = false;
		}
	}
	
    /**
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10.1
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
	public function hideTabBar(animate:Boolean = true):void
	{	
		if (tabBar && tabBar.visible)
		{
			animateTabBarVisbility = animate;
			tabBarVisibilityInvalidated = true;
			invalidateProperties();
		}
		else
		{
			tabBarVisibilityInvalidated = false;
		}
	}
	
    //--------------------------------------------------------------------------
    //

    
    /**
     *  @private
     *  Called in commitProperties() and begins the view transition
     *  process.
     * 
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 2.5
     *  @productversion Flex 4.5
     */
    protected function commitViewChange():void
    {
        // TODO (chiedozi): Perf only
//        CONFIG::performanceInstrumentation
        {
            // Private event used for performance tests
            if (hasEventListener("viewChangeStart"))
                dispatchEvent(new Event("viewChangeStart"));
        }
        
        // If a ui control is animating, force it to end
        if (actionBarVisibilityEffect)
            actionBarVisibilityEffect.end();
        
        beginViewChange();
        
        pendingViewData = navigationStack.topView;
        
        // Create an empty view if no firstView factory is defined
        if (pendingViewData == null)
        {
            emptyViewData = new ViewHistoryData(View);
            pendingViewData = emptyViewData;
        }
        
        if(pendingViewData.factory != null)
        {
            var view:View;
            
