2012-03-15 2 views
2
  • 컨테이너의 너비에 따라 다중 행 TabBar를 갖는 방법 (가능한 경우)을 수행 할 수 있습니까?
+1

정확히 어떻게 해야할지 모르겠지만 TabBar를 확장하는 것이 좋은 방법입니다. 이 [링크]를 보았습니까 http://blog.everythingflex.com/2009/08/27/multirowtabs-flex-component-redux/? 전체 소스 코드 링크가 깨졌지만 도움이 될 것입니다. 또한 그것은 내가 무엇을 요구한지 아니지만, 당신이 정상 TabBar을 좋아하지 않는다면, [링크] http://code.google.com/p/flexlib/wiki/ComponentList의 SuperTabBar는 좀 이상합니다. – Sebastian

+4

I TileLayout을 HorizontalLayout 대신 사용자 정의 TabBarSkin에 적용 할 수 있다고 생각해보십시오. 이 방법을 사용하면 TabBar를 확장 할 필요조차 없습니다. – RIAstar

+1

TileLayout을 추가했으나 일부 ​​불규칙한 틈이 탭 아래에 그대로 있습니다. : | –

답변

8

TabBar에 TileLayout을 제공하는 것처럼 간단합니다. TabBar의 하위 클래스를 만들 필요가 없으며 사용자 정의 스킨 클래스를 만들지 않아도됩니다. 그냥 이렇게 : 이런 식으로 뭔가를 생성합니다

<s:TabBar dataProvider="{dp}" left="0" right="0"> 
    <s:layout> 
     <s:TileLayout horizontalGap="-1" verticalGap="-1" 
         requestedRowCount="2" /> 
    </s:layout> 
</s:TabBar> 

을 : TileLayout 기본적으로 행의 특정 번호를 할당하기 때문에

TabBar with TileLayout

당신이 본 TabBar의 아래의 격차가 발생한다. requestedRowCount을 예상 한 행 수 (이 예제에서는 2)로 설정하여이를 대체 할 수 있습니다. 당신이 진정으로 동적하려면

, 당신은 비교하여 행의 필요한 수를 계산할 수 TabBar의 년대 TileLayout의 columnWidth하고 requestedRowCount 속성에 결과 수를 바인딩에 총 width.

+1

그것은 작동하지만 여전히 TabBar 객체 다음에 발생하는 wried gap이 있습니다. : | \t \t \t \t \t \t \t \t 어쨌든 도움이된다면 이것은 입니다. Flex 4.6. –

+1

@YordanYanakiev 나는 그 문제에 대한 해결책으로 나의 대답을 업데이트했다. – RIAstar

+2

height = "{(int (dataProvidersTabs.length/(width/90)) +1) * 21}"이것은 다른 해결책이지만 어쩌면 훨씬 좋은 솔루션이 있습니다. requestedRowCount에 대한 –

관련 문제