             tabBar.setLayoutBoundsSize(unscaledWidth, tabBarHeight);
             tabBar.setLayoutBoundsPosition(0, unscaledHeight - tabBarHeight);
             tabBarHeight = tabBar.getLayoutBoundsHeight(); 
+            
+            // backgroundAlpha is not a declared style on ButtonBar
+            // TabbedViewNavigatorButtonBarSkin implements for overlay support
+            var backgroundAlpha:Number = (_isOverlay) ? 0.75 : 1;
+            tabBar.setStyle("backgroundAlpha", backgroundAlpha);
         }
         
-        if (currentState == "portraitAndOverlay" || currentState == "landscapeAndOverlay")
-        {
-            tabBar.alpha = .6;
-            
-            if (contentGroup.includeInLayout)
-            {
-                contentGroup.setLayoutBoundsSize(unscaledWidth, unscaledHeight);
-                contentGroup.setLayoutBoundsPosition(0, 0);
-            }
-        }
-        else
-        {
-            tabBar.alpha = 1.0;
-            
-            if (contentGroup.includeInLayout)
-            {
-                var contentGroupHeight:Number = Math.max(unscaledHeight - tabBarHeight, 0);
-                
-                contentGroup.setLayoutBoundsSize(unscaledWidth, contentGroupHeight);
-                contentGroup.setLayoutBoundsPosition(0, 0);
-            }
-        }
+        var contentGroupHeight:Number = (_isOverlay) ? unscaledHeight : Math.max(unscaledHeight - tabBarHeight, 0);
+        contentGroup.setLayoutBoundsSize(unscaledWidth, contentGroupHeight);
+        contentGroup.setLayoutBoundsPosition(0, 0);
     }
 }
 }
    {
        super.commitCurrentState();
        
        // Force a layout pass on the components
        invalidateSize();
        invalidateDisplayList();
    }
    
    
    /**
     *  @private

    // Methods
    //
    //--------------------------------------------------------------------------

    private var _isOverlay:Boolean;
    
    /**
     *  @private
