300x250

이 포스팅은

developer.android.com/guide/topics/ui/declaring-layout?hl=ko

안드로이드 디벨로퍼 공식 홈페이지 문서를 읽고 요약한 글입니다.

 

레이아웃


- 앱에서 사용자 인터페이스 위한 구조 

- 모든 요소는 View와 ViewGroup 객체의 계층 구조를 사용하여 빌드

- View는 일반적으로 사용자가 보고 상호작용할 수있는 것을 그림.

-ViewGroup은 View및 기타 ViewGroup 객체의 레이아웃 구조를 정의하는 보이지 않는 컨테이너

 

UI 레이아웃을 정의하는 뷰 계층 구조 예

 

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의 형태로 레이아웃 리소스 참조로 전달.

 

반응형

+ Recent posts