2009-05-06 7 views

답변

21

시각적 탭을 구성하는 Button을 반환하는 TabNavigator의 getTabAt() 메서드를 사용하면이 작업을 수행 할 수 있습니다. 그런 다음 해당 버튼의 visible 속성을 설정할 수 있습니다. 바인딩으로이 설정을하는 것은 약간 까다 롭지 만 수행 할 수 있습니다.

대신 해당 탭을 사용하지 않도록 설정할 수도 있습니다.이 작업은 해당 TabNavigator 하위에서 사용 설정 (표시가 작동하지 않는 경우)으로 수행 할 수 있습니다.

+2

감사합니다. 또한 Button에 includeInLayout을 설정해야합니다. 나는 정상적인 청취자들과 함께 그것을 구현하고, 바인딩으로 그것을 시도하는 것에 대해 걱정하지 않았다. –

+0

오늘도 같은 문제가 발생했습니다. –

1

숨기기로 무엇을 의미합니까? 실제로 제거를 의미하는 경우 TabNavigator에서 데이터에 바인딩 된 배열을 가져 와서 해당 요소를 제거하십시오.

일시적으로 제거하려는 경우 TabNavigator를 캡슐화하고 제거 된 탭의 배열과 실제 탭의 배열이있는 자체 구성 요소를 만듭니다. 그런 다음 적절하게 처리하십시오.

+1

"일시적으로 표시하지 않음"을 의미합니다. TabNavigator에서 제거하면 과도한 것처럼 보입니다. 바인딩을 사용하는 방식으로이 작업을 수행하는 것이 좋을 것입니다 ... –

1

flexlib 프로젝트를 확인하시기 바랍니다. 그들은 숨겨진 탭을 포함하여 기본 Flex TabNavigator에 많은 기능을 추가하는 SuperTabNavigator라는 구성 요소를 가지고 있습니다 (필자는 생각합니다).

독자적인 구성 요소를 만들어야하는 경우에는 다소 까다 롭습니다. 알아야 할 것은 "탭"은 사실 TabBar 구성 요소 (TabBar는 TabNavigator 내에 포함됨) 내에 포함 된 특수 스타일 단추라는 것입니다. 그런 다음해야 할 일은 TabNavigator의 하위 클래스이며 TabBar 버튼의 visible 및 includeInLayout 속성에 바인딩 된 뷰 (예 : TabNavigator에 추가 된 캔버스 등)에 대한 일부 속성이 있습니다. 내가가 TabNavigator에 대해 잘 모르지만, 다른 용기에, 당신은 falseincludeInLayout 속성을 설정할 수 있습니다 그것을 무시됩니다

BindingUtils.bindProperty(tabButton, "visible", view, "someProperty"); 
BindingUtils.bindProperty(tabButton, "includeInLayout", view, "someProperty"); 
0

: 본질적으로

은, 당신이해야하는 것은 무엇인가 같다. 아마도 이것을 visible과 결합해야 할 것입니다.

0
var secondTab = tabNavigator.removeChildAt(0); 
관련 문제