이 포스팅은
developer.android.com/guide/topics/ui/declaring-layout?hl=ko
안드로이드 디벨로퍼 공식 홈페이지 문서를 읽고 요약한 글입니다.
레이아웃
- 앱에서 사용자 인터페이스 위한 구조
- 모든 요소는 View와 ViewGroup 객체의 계층 구조를 사용하여 빌드
- View는 일반적으로 사용자가 보고 상호작용할 수있는 것을 그림.
-ViewGroup은 View및 기타 ViewGroup 객체의 레이아웃 구조를 정의하는 보이지 않는 컨테이너
View 객체
- 일반적으로 위젯 이라고 함
- Button, TextView와 같은 여러 시브클래스 중 하나
ViewGroup 객체
- 일반적으로 레이아웃 이라고 함
- LinearLayout 또는 ConstraintLayout과 같은 다양한 레이아웃 구조를 제공하는 여러 유형 중 하나
레이아웃을 선언하는 방법
UI 요소를 XML로 선언
- Android는 위젯, 레이아웃과 같이 View클래스와 서브 클래스에 상응하는 간단한 XML어휘를 제공.
- Android Studio의 Layout Editor를 사용하여 드래그 앤 드롭 인터페이스로 XML 레이아웃을 빌드 할 수 있음.
- 동작을 제어하는 코드로부터 앱 표현을 분리
- 다양한 화면 크기와 방향에 여러가지 레이아웃을 쉽게 제공.
런타임에 레이아웃 요소 인스턴스 화
- 앱은 프로그래매틱 방식으로 View 및 ViewGroup 객체를 만들고 그 속성을 조작할 수 있음.
Android 프레임워크는 두가지 방법을 조합하여 사용가능
> 앱의 기본 레이아웃을 XML에서 선언.
> 런타임에 레이아웃을 수정.
XML 쓰기
- 각 레이아웃 파일에는 반드시 딱 하나의 루트 요소만 있어야 하며, View 또는 ViewGroup 객체여야 함.
- 루트 요소를 정의한 후, 더 많은 레이아웃 객체 또는 위젯을 하위 요소로 추가하여 계층적으로 레이아웃을 정의하는 뷰 계층 구조를 빌드
Example ) Vertical 방향 LinearLayout을 사용, TextView, Button을 보유하는 XML
- res/layout디렉터리에 .xml확장자로 저장
XML 리소스 로드
- 각 XML레이아웃 파일이 View리소스 안에 컴파일 됨
- Activity.onCreate() 콜백 구현에서 앱코드로부터 레이아웃 리소스를 로드해야 함.
> setContentView() 호출, R.layout.layout_file_name의 형태로 레이아웃 리소스 참조로 전달.
'Android > 사용자 인터페이스 ( View, ViewGroup )' 카테고리의 다른 글
사용자 인터페이스 - Constraint Layout [ 제약조건 개요, 추가] (0) | 2021.05.26 |
---|---|
사용자 인터페이스 - 레이아웃[ View & ViewGroup 속성, 위치, 크기, 여백 및 패딩 ] (0) | 2021.05.07 |
[Android View] 02. 안드로이드 사용자 정의 뷰 OnDraw( Canvas ) 알아 보기 (0) | 2021.04.30 |
[Android View] GraphicOverlay 01. 클래스 다이어그램 (0) | 2021.04.16 |