코딩기록

LinearLayout & RelativeLayout & FrameLayout 본문

프론트엔드/Flutter

LinearLayout & RelativeLayout & FrameLayout

빌럽스 2024. 5. 19. 19:17

LinearLayout

  • 여러 View 위젯들을 가로/세로 방향으로 나열할 때 사용하는 Layout
  • orientation 속성을 가지고 있어 가로(Horizontal), 세로(Vertical)을 설정할 수 있다.
  • 자식들은 중첩되지 않고 지정한 방향으로 쌓이는 형태로 표시된다.
  • weight 속성으로 가중치를 설정할 수 있다. 비율로 나타낼 수 있다.
    다양한 디바이스 화면에 dp가 아니라 비율에 따른 대응으론 좋다. (그러나 onLayout()를 자주 호출하여 상관관계를 파악하기에 성능상 좋진 않다)

RelativeLayout

  • 자식 View 위젯들이 서로 간의 상대적 배치 관계에 따라 화면에 표시될 위치가 결정되도록 만들어주는 Layout 클래스
  • 상대적인 배치 기준을 정하지 않는다면, 내부에서 중첩되어 표시된다.
  • 특정 위젯을 기준으로 배치하게 된다.
  • 아무런 조작을 하지 않았을 때는 왼쪽 상단부터 위젯이 쌓이게 된다.

FrameLayout

  • 주로 하나의 자식 View위젯만 표시할 때 사용하는 layout 클래스.
  • 추가된 순서대로 쌓이게 되기에 마지막에 추가된 뷰가 가장 위에 올라오게 된다.
  • 여러 Fragment를 동일한 위치 내에서 교체하여 표시하고자 할 때, Fragment의 컨테이너 역할로써 FrameLayout을 주로 사용한다.
  • 보통 로딩중 Progress를 보여줄 때