안드로이드 스튜디오를 처음 공부할 때 모든 것을 뷰(View)라고 통칭해 마음에 안 들 때가 있다. 도대체 뷰가 뭐야?
이유가 있었다
뷰 : 앱 실행 화면을 구성하는 요소의 통칭
앱을 실행하면 화면에 뭐가 나와야 쓰지 않는가? 그런데 화면을 구성하는 것들을 뷰라고 부른다. 하하
우리는 안드로이드 개발을 Java를 기반으로 한다. Java언어의 특징으로 Object클래스가 최상위 클래스다.
거기서 사실상 우리가 다루는 것들의 최상위 클래스를 View라고 만들었다. 한번 계층도를 볼까?
안드로이드 앱 화면에 나타내줄 것들을 개발자가 0부터 하지 않고 가져다가 쓰라고 친절하게 각각 클래스로 만들어 놓았다. 우리는 필요할 때 이를 import해서 사용하면 된다. 화면에서 사용하는 것들은 모두 View클래스의 상속을 받는다.
뷰는 화면에 나타나는 것들(버튼, 텍스트뷰, 이미지뷰 등)과 위젯을 담는 뷰그룹(레이아웃)으로 크게 나눌 수 있다.
용어정리
위젯 : 버튼, 체크박스, 라디오버튼 등 대충 실제로 화면에 나타나는 것. 사실은 레이아웃도 포함하는 개념이지만 실제로 나타나는 것만을 위젯이라고 많이 쓴다.
레이아웃 : 다른 위젯들을 담을 수 있는 위젯을 레이아웃이라고 한다. 실제로 화면에 보이지는 않고 그냥 담을 수 있는 틀이다. 틀에 다른 틀을 담을 수 있듯 레이아웃 안에 레이아웃도 얼마든지 가능하다. 뷰그룹을 상속받는다.
- 여기서 레이아웃의 종류가 여러 개 있는데, 위젯들을 배치하는 방식에 따라 여러 개의 틀이 준비되어 있다. 예를 들어 테이블 레이아웃은 행과 열의 개수를 지정하고 테이블 형태로 위젯을 배열한다.
대표적으로 왼쪽 위부터 정직하게 배치하는 LinearLayout, 그리고 레이아웃, 다른 위젯간 상대적인 위치를 통해 나의 위치를 결정하는(그리고 구글이 추천하는)ConstraintLayout가 있다.
요약
앱 화면에 나오는 것들은 다 뷰라고 하며, 또한 클래스이다. 클래스로 다 만들어 놓았으며, 개발자는 원하는 뷰를 import해서 정의돼있는 클래스, 메소드, 객체 등을 참조하여 쓰면 된다.
'개발 > Java' 카테고리의 다른 글
[Java]자바의 반복문 (0) | 2023.07.21 |
---|---|
[Java] 자바 조건문: If-else, Switch-case, Switch Expression (0) | 2023.07.21 |
[Java]자바의 연산자 (0) | 2023.07.19 |
[Java] 자바의 기본 자료형(primitive types 원시 자료형) (0) | 2023.07.18 |
Java에서 컴파일(compile)이란 무엇일까? JVM,JDK,JRE? 바이트코드? (0) | 2023.05.27 |