안드로이드에서는 뷰를 위젯이라고도 부른다
뷰는 자신이 화면 어디에 그려져야 하는지에 대한 위치 정보가 없다
뷰를 화면에 배치하는 무언가가 반드시 필요하다 → 뷰그룹
여러 자식 뷰를 담을 수 있으며, 뷰는 반드시 뷰그룹에 포함되어야지만 화면에 그려진다.
LinearLayout
수평 혹은 수직으로 배치
RelativeLayout
각 뷰들의 관계에 따라 배치
FrameLayout
겹쳐서 배치
TableLayout
표 형태의 배치
결국 뷰그룹도 뷰다
즉, 안드로이드에서의 화면은 오직 뷰만으로 구성되어있다.
뷰그룹은 자식 뷰를 어떻게 배치할까? → 자식 뷰가 배치 관련 정보를 제공
그것을 layoutParams를 통해서 이루어지게 된다.
layout_@@@@ 속성을 사용하여 액티비티에 정보를 제공하게 된다.
MarginLayoutParams : layoutParams를 상속받는다.
LayoutParams, MarginlayoutParams는 모든 뷰에 공통적으로 사용되는 필수 정보
결국 모든 종류의 뷰그룹은 LayoutParams, MarginLayoutParams를 상속받는다.
wrap_content
뷰 스스로 적당한 크기에 맞춘다. 일반적으로 문자열의 길이에 맞춰진다.
match_parent
부모 뷰그룹의 크기에 맞춰진다. 즉, 부모 뷰그룹의 너비 또는 높이에 맞춰진다.
부모 뷰그룹에 크기를 맞추기 때문에 화면 크기가 다른 단말에서도 유연하게 레이아웃을 유지할 수 있다.