문제

현재 프로젝트 (Flash Player에서 실행되는 Flex 앱)에 대한 요구 사항이있어서 응용 프로그램 상태의 특정 측면을 기반으로 다른 모든 구성 요소를 숨기면서 구성 요소의 임의의 하위 집합을 표시합니다. 약 12 개의 다른 텍스트 상자와 드롭 다운이 있지만 일부는 이전에 입력 한 사용자 데이터를 기반으로 관련이 없으며이 특정 양식에 도달 할 때 표시를 원하지 않습니다. 이 양식이 표시 될 때마다 이러한 구성 요소의 많은 순열 중 하나를 표시해야합니다.

이 문제에 접근하는 가장 좋은 방법을 결정하려고합니다. 필요한 모든 컨트롤이있는 캔버스 (또는 다른 컨테이너)를 만들고 필요하지 않은 것들에 표시 = false를 설정해야합니까? 그런 다음 문제가 레이아웃이 괜찮아 보이게됩니다. 나는 숨겨진 컨트롤이 있었던 곳에 틈이 있기를 원하지 않습니다.

내가 생각한 다른 옵션은 단지 텍스트 또는 확인란 등을 동적으로 인스턴스화 한 다음 구성 요소를 호출하여 구성 요소를 구축하고 갭 문제에 대해 걱정할 필요가없는 메커니즘을 갖는 것입니다.

이것은 Flex에 관용적 인 솔루션이있는 문제처럼 보이지만 그것이 무엇인지 모르겠습니다. 이 아이디어 중 어느 것도 훌륭해 보이지 않으므로 다른 사람이 더 나은 아이디어를 가지고 있는지 궁금합니다.

도움이 되었습니까?

해결책

이것이 좋은 해결책인지 아닌지는 모르겠지만, 정확히 같은 상황에 처했을 때 기본적으로 첫 번째 방법을했습니다. 세트 visible = false 또한 설정합니다 includeInLayout = false 당신이 말한 "갭"을 막기 위해. 매우 간단한 솔루션이며 매우 쉽고 구현하기가 빠릅니다 ... 아마도 다른 사람이 더 관용적 인 것을 알고있을 것입니다.

다른 팁

이를 수행하는 모범 사례는 상태를 사용하는 것입니다. 예를 들어:

<mx:states>
    <mx:State name="State1">
        <mx:AddChild position="lastChild">
            <components.../>
        </mx:AddChild>
    </mx:State>
    <mx:State name="State2">
        <mx:AddChild position="lastChild">
            <mx:Canvas.../>
        </mx:AddChild>
        <mx:AddChild position="lastChild">
            <mx:VBox.../>
        </mx:AddChild>
    </mx:State>
</mx:states>

그런 다음 코드 내에서 CurrentState = "State1"을 호출하려면 첫 번째 상태 등을 활성화하여 상태를 사용하여 구성 요소를 선택하고 숨길 수 있습니다.

Flex States 튜토리얼에 대한 인터넷 검색을 권장하고 상태가 어떻게 작동하는지에 대한 적절한 아이디어를 얻으려고 노력하는 것이 좋습니다.

상태가하지 않으면 구성 요소 수명주기를 설명하는 기사를 확인하십시오.

캔버스와 같은 Flex 구성 요소를 확장하는 클래스를 작성하면 CreateChildren을 무시하는 함수의 모든 구성 요소를 정의합니다. UpdatedIsplayList를 무시하는 다른 함수에서 레이아웃을 다시 방문합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top