Я хочу добавить нижние и верхние панели вкладок на одном и том же представлении - его гибкий мобильный вид. Я пробовал это, но когда я создаю две панели вкладок, на просмотр только один из них просматривается - нижний. Но если я удалю нижний, он отобразит верхнюю панель вкладок. Любые предложения по отображению их обоих на одном экране?Гибкие нижние и верхние вкладки с нижним и верхним вкладками на одном и том же представлении
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
title="">
<s:TabbedViewNavigator id="tb_hastaUp" width="100%" height="100%" skinClass="skins.TabbedViewNavigatorSkin">
<s:ViewNavigator label="view1" width="100%" height="100%" firstView="views.view1" />
<s:ViewNavigator label="view2" width="100%" height="100%" firstView="views.view2" />
<s:ViewNavigator label="view3" width="100%" height="100%" firstView="views.view3" />
</s:TabbedViewNavigator>
<s:TabbedViewNavigator id="tb_hastaBottom" width="100%" height="100%" skinClass="spark.skins.mobile.TabbedViewNavigatorSkin">
<s:ViewNavigator label="view1" width="100%" height="100%" firstView="views.view1"/>
<s:ViewNavigator label="view2" width="100%" height="100%" firstView="views.view2" />
<s:ViewNavigator label="view3" width="100%" height="100%" firstView="views.view3" />
</s:TabbedViewNavigator>
</s:View>
А вот мой TabbedViewNavigatorSkin:
override protected function layoutContents(unscaledWidth:Number, unscaledHeight:Number):void
{
super.layoutContents(unscaledWidth, unscaledHeight);
var tabBarHeight:Number = 0;
if (tabBar.includeInLayout)
{
tabBarHeight = Math.min(tabBar.getPreferredBoundsHeight(), unscaledHeight);
tabBar.setLayoutBoundsSize(unscaledWidth, tabBarHeight);
tabBar.setLayoutBoundsPosition(0, 0);
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 (contentGroup.includeInLayout)
{
var contentGroupHeight:Number = (_isOverlay) ? unscaledHeight : Math.max(unscaledHeight - tabBarHeight, 0);
contentGroup.setLayoutBoundsSize(unscaledWidth, contentGroupHeight);
contentGroup.setLayoutBoundsPosition(0, tabBarHeight);
}
}
Я хочу, чтобы достичь вид, как ниже:
Показать код, пожалуйста. – JeffryHouser
Я обновил сообщение и добавил код. –
Я не уверен; но ваша скина не ссылается ни на один из ваших экземпляров TabbedViewNavigator для позиционирования или определения размера. ЕСЛИ вы не определяете или не позиционируете ни один из них, это может быть причиной того, что их отображение не отображается должным образом. Разве они оба не будут расположены на 0,0 справа друг от друга? Так как обе панели вкладок расположены на высоте 100%, кажется логичным, что один покрывает другой. – JeffryHouser