지난시간에 이어서  ExtJS에서 제공하는 다양한 레이아웃에 대하여 포스팅을 해보도록 하겠습니다.


    이번장에 다루려는 레이아웃은 다음과 같습니다. ▼

    1. Fit 레이아웃

    2. Form 레이아웃

    3. HBox/VBox 레이아웃

    4. Table 레이아웃


    Fit 레이아웃

    자동으로 레이아웃내에 있는 항목들을 컨테이너 내에 가득채워지게 확장하는 레이아웃의 기본 클래스 입니다.

    별도의 속성을 정의해서 구현할 필요가 없습니다.

    ▶ layout : 'fit' 적용 전 샘플 코드

    ▶ layout : 'fit' 적용 전 결과 화면

    코드를 보시면 layout : 'fit' 코드를 임시로 주석 처리 후, frame : true 라는 속성이 추가로 작성해주었는데 해당 속성으로 패널의 프레임을 적용하기 위하여 임의로 작성하였습니다.

    결과화면의 회색부분이 frame 속성이 적용된 예시입니다.

    위 처럼 layout : 'fit'을 적용전에는 자식 패널이 출력된 컨텐츠 사이즈만큼밖에 높이가 지정되지 않고 있습니다.

    하지만, layout 속성을 'fit'으로 주게된다면, 다음 코드 및 결과처럼 출력이 될 것입니다.

    ▶ layout : 'fit' 적용 후 샘플 코드

    ▶ layout : 'fit' 적용 후 결과 화면

    실행결과, 내부의 자식패널이 부모의 패널사이즈내에 자동으로 가득채워지는 결과를 확인 할 수 있습니다.


    Form 레이아웃

    폼필드를 컨테이너 넓이에 맞춰지고, 렌더링을 하는 레이아웃입니다.

    ▶ 샘플 코드

    ▶ 결과 화면

    폼 레이아웃은 회원가입 및 로그인과 같은 화면구성시 사용하면 유용할듯...

    하지만 폼 패널 및 VBox/HBox 등의 레이아웃 및 컴포넌트 역시 사용가능합니다.

    본인의 취향에 따라 사용유무를 결정하시면 될거 같습니다.


    HBox/VBox 레이아웃

    HBox - 수평방향으로 자식 항목들을 배치하는 레이아웃
    필요시 수치의 flex 설정이 포함되어있는 
    자식 항목사이에 이용 가능한 수평공간을 분할합니다.
    VBox - 수직방향으로 자식 항목들을 배치하는 레이아웃
    필요시 수치의 flex 설정이 포함되어있는 
    자식 항목사이에 이용가능한 수직 방향의 공간을 분할합니다. 

    ▶ layout : 'HBox' 샘플 코드

    ▶ layout : 'HBox' 결과 화면


    ▶ layout : 'VBox' 샘플 코드

    ▶ layout : 'VBox' 결과 화면



    우선 HBox 레이아웃의 경우 왼쪽 → 오른쪽 방향으로 항목들이 쌓이는 것을 확인 할 수 있습니다.

    단순히 layout : 'hbox'를 주어도 되지만, 추가 align 속성에 대하여 지정을 해주었는데 이부분은 layout : 'fit'과 비슷한 기능을 하도록 부모패널내에 자식 항목들이 채워지게끔 하기위해 적용하였습니다.


    다음은 VBox 레이아웃의 경우는 위 → 아래 방향으로 항목들이 쌓였습니다.

    각각의 자식 패널들의 넓이 및 높이를 다르게 적용해야 한다면 VBox 레이아웃을 이용하시면 되겠습니다.


    Table 레이아웃

    이 레이아웃은 간편하게 HTML 테이블의 내용을 렌더링 할 수 있습니다.
    줄이나 칸을 합칠때 사용하는 ROWSPAN과 COLSPAN을 복잡한 레이아웃을 작성하기 위해 사용할 수 있습니다.

    ▶ 샘플 코드

    ▶ 결과 화면


    위와 같이 html 태그와 동일하게 TABLE 태그와 흡사하면 ROWSPAN/COLSPAN을 자유롭게 사용할 수 있는것을 확인했습니다.


    지금까지 패널에 사용되는 layout 속성에 대해서 알아보았습니다.

    지금은 문법에 대해서 익숙 하지 않으실거라 생각되므로 다음 장은 기존 코드들을 인용하여 문법에 대해서 몇 가지 짚고 넘어가보도록 하겠습니다.



    Posted by 몽고