플렉스에서 레이아웃의 할당된 크기 자체를 숨겨야 하는 경우가 있다.

안드로이드에서는 레이아웃의 visible 속성에 visible/invisible/gone 속성을 줌으로 인해서 [보이고/숨기고/할당크기까지 숨기고] 가 가능하지만, 플렉스에서는 해당 기능이 없는지 많이 고민했다.


검색해보니 includeinlayout 이라는 것이 있었고 실제로 사용해보았다.

일단 개념정리부터.


화면 컴포넌트 중에 일부를 보였다, 안 보였다 하게 제어해야 할 경우가 있다.

이것을 위해서 visible 속성에 true, false를 주면 안 보이긴 하는데 그 자리가 비어 있어서 영 보기가 안 좋다.

이럴 경우에는 includeInLayout 속성에 true, false를 주면 그 컴포넌트가 원래 코드에 포함되지 않은 것처럼 빈자리 없이 보인다.

단, 절대좌표를 가진 컴포넌트는 당연히 visible을 사용할 때와 똑같이 보일 것이고, Grid, HBox, VBox 등의 Layout Componet에 올라가 있을 경우에만 제대로 동작을 한다.

Flex 하다 보면 다들 느끼겠지만 화면크기가 모든 사용자에게 똑같으면 상관없지만 그렇지 않은 관계로 대부분의 화면 컴포넌트들을 HBox, VBox에 올려 놓고 왼쪽정렬이나 오른쪽정렬을 하는 것이 가장 편하다.


해당레이아웃.includeinlayout = false 를 주면 할당 크기까지 숨기겠다는 뜻이며, true 값은 할당 크기를 숨기지 않겠다는 뜻이 된다.

아쉽게도 안드로이드의 gone 처럼 사용하기 위해서는 해당 레이아웃.visible=false; 까지 해주어야 해당레이아웃 값 안보이고/해당레이아웃 할당크기 숨기고 가 된다.



블로그 이미지

김생선

세상의 모든것을 어장관리

티스토리 툴바