본문 바로가기

Android 공부/Layout

기본 Layout

Layout

  • LinearLayout
    • 정의 : 여러 View 위젯을 수직, 수평으로 나열할 때 사용되는 ViewGroup
    • 특징 : 수직, 수평으로 일열로 나열할 수 있다
    • 예시 : 앱의 화면처럼 수직, 수평으로 공간을 나눌 수 있으며 나열 할 수 있다.
  • RelativeLayout
    • 정의 : 하위 뷰가 상위 뷰나 다른 뷰에 상대적인 위치를 지정할 수 있는 레이아웃. 중첩되기도 하고 다양한 디바이스에 대응이 어렵다.
    • 특징 : 관계를 정의하지 않으면 뷰를 배치할 수 없음
    • 예시 : 아래의 화면처럼 곂칠 수도 있으며 특정 뷰를 기준으로 관계를 정의해야한다.
  • FrameLayout
    • 정의 : View 위젯이 곂쳐서 보여지는 레이아웃 Visibility를 변경해서 원하는 하나의 View만 표시하는 레이아웃이다.
    • 특징 : 크기는 가장 큰 위젯의 크기이다
    • 예시 : 아래의 화면처럼 곂쳐있으며 visibility를 변경하여 하나의 위젯만 보이게 한다.
  • TableLayout
    • 정의 : 행열로 이루어진 레이아웃
    • 특징 : 열을 합칠 수 있으나 행은 합칠 수 없음
    • 예시 : 화면처럼 열은 합칠 수 있으나 행은 불가능하다.
  • GridLayout
    • 정의 : 셀의 보이는 영역을 나누는 무수한 얇은 선들의 집합인 grid로 이루어진 레이아웃 자동 스크롤이 안된다
      • 특징 : 열 뿐만아니라 행도 합칠 수 있어 tablelayout보다 더 좋다
    • 예시 : 이렇게 행열을 나눌 수 있고 통합도 가능하다.
  • ConstraintLayout
    • 정의 : 뷰와 위젯을 유연하게 크기와 위치를 변경할 수 있는 레이아웃 다른 View에 닻을 내리듯이 조건을 걸어 관계를 정의, 퍼포먼스가 좋다는 장점이 있다.
    • 특징 : 상대적인 위치, 크기등을 제약을 지정해서 변경할 수 있다. RelativeLayout의 상대적 위치 관계에 따른 배치 특성에 LinearLayout의 가중치가 가진 장점을 가지고 있으며 체인을 사용하여 다른 레이아웃없이 요소들을 그룹화 할 수 있다. 또한 RelativeLayout보다 더 유연한 위치속성을 가지고 있으며 호출횟수도 더 적어 성능이 더 좋다.
    • 예시 : 화면처럼 제약을 통해 위치를 지정할 수 있으며 크기도 지정 가능하다.