
View
- 화면에서 눈에 보이는 모든 요소를
View라고 부른다
- 화면에 배치하는 모든
View들은 클래스로 제공되며 View 클래스를 상속받고있다
View 클래스는 모든 UI 요소들의 최상위 클래스인 부모클래스로 Widget과 Layout으로 나눈다
View 객체는 일반적으로 Widget이라고 하고 Button 또는 TextView와 같은 여러 서브클래스 중 하나일 수 있다
- 공통적인
View 주요 속성
id : View를 지칭하기 위해 사용하는 속성
layout_width : View의 가로길이. dp 단위. wrap_content, match_parent
layout_height : View의 세로길이. dp 단위. wrap_content, match_parent
wrap_conent : 자신을 완변하게 표현할 수 있는 최소 사이즈
match_parent : 레이아웃 크기에 꽉 채운다
layout_margin : View의 외부 여백을 설정
padding : View의 안쪽 여백을 설정
- 안드로이드의
View 중 기능을 갖고 사용자와 상호작용을 하는 것들을 Widget이라고 부른다
Widget은 Layout 위에 배치되어 화면에 나타나고 코드를 통해 Widget 통제하여 사용자와 소통을 하는 수단
Layout에 사용하고자 하는 Widget을 배치하고 Activity가 실행되면 화면이 구성되고 화면에 배치된 모든 View들은 객체로 생성
객체로 생성된 View 중에 필요한 Widget들의 주소 값을 얻어와 코드로 이들을 통제하고 필요하다면 이벤트에 대한 코드를 구성하여 사용
Layout
Layout은 앱에서 사용자 인터페이스를 위한 구조를 정의
Layout의 모든 요소는 View와 ViewGroup 객체의 계층 구조를 사용하여 빌드됩니다
ViewGroup 객체는 일반적으로 Layout이라고 하고 다양한 레이아웃 구조를 제공하는 여러 유형 중 하나일 수 있습니다
- 다른
View 들을 포함 하고(Container) 내부의 View를 통합 관리하고(View Group) 내부 View 들이 배치되는 모양을 결정(Layout) 한다

LinearLayout
방향성을 가지고 view 를 배치하는 layout
가로 혹은 세로방향으로 배치할 수 있으며 한 칸에 하나의 view 만 배치
- 안드로이드에서 가장 많이 사용하는 layout.
LinearLayout을 조합하여 다양한 모양을 만들 수 있다
- 주요 속성
orientation : 배치되는 모양을 결정
weight : LinearLayout 안에 배치되는 View 들의 비율을 설정
RelativeLayout
Parent나 다른 view 와의 관계를 설정하여 배치하는 layout
- Relative Layout 에는 특별한 속성이 없지만 배치되는 view 들의 속성을 이용해 배치를 결정
- 주요 속성
layout_alignParentTop : 자신의 상단을 parent 의 상단 부분과 일치 시킨다
layout_alignParentBottom : 자신의 하단을 parent 의 하단 부분과 일치 시킨다
layout_alignParentLeft : 자신이 좌측 부분을 parent 의 좌측 부분과 일치 시킨다
layout_alignParentRight : 자신의 우측 부분을 parent 의 우측 부분과 일치 시킨다
layout_centerHorizontal : 세로 방향의 중앙에 정렬
layout_centerVertical : 가로 방향의 중앙에 정렬
layout_centerInParent : 가로 세로 모두 중앙에 정렬
layout_alignTop : 자신의 상단 부분을 지정된 view 의 상단 부분에 일치 시킨다
layout_alignBottom : 자신의 하단 부분을 지정된 view 의 하단 부분에 일치 시킨다
layout_alignLeft : 자신의 좌측 부분을 지정된 view 의 좌측에 일치 시킨다
layout_alignRight : 자신의 우측 부분을 지정된 view 의 우측에 일치 시킨다
layout_above : 지정된 view 상단에 배치
layout_below : 지정된 view 하단에 배치
layout_toRightOf : 지정된 view 우측에 배치
layout_toLeftOf : 지정된 view 좌측에 배치
ConstraintLayout
RelativeLayout 을 개선한 layout 으로 보다 유연하게 화면을 구성할 수 있다
ConstraintLayout 은 RelativeLayout 처럼 부모와의 관계나 다른 View와의 관계를 설정
실선 제약 조건 : 지정된 기준으로부터 얼마큼 떨어진 위치에 있는지 좌표를 설정
스프링 제약 조건 : 지정된 기준으로부터 얼마큼 떨어진 위치에 있는지 비율을 설정
Space
Space는 Layout은 아니지만 Layout을 이용해 화면을 구성할 때 보조 수단으로 사용
- 화면을 구성할 때
여백이 필요할 경우 layout_margin을 사용해도 되지만 직관적으로 Space가 배치됨에 따라 여백의 존재를 알수 있기에 사용