Palette 메뉴에는 Common(자주 사용되는 컴포넌트들) / Text / Buttons / Widgets / Layout / Container / Google(구글에서 제공하는 광고판, 맵 뷰) 로 이루어진 하위 카테고리가 있다.
여기에서 각 카테고리별로 자주 사용되는 View에 대해 정리해보고자 한다.
1. Text
- TextView: 화면에 텍스트를 표시하는 기능을 제공한다.
2. Buttons
- Button: User가 탭하거나 클릭해서 작업을 수행할 수 있는 사용자 인터페이스 요소이다. MainActivity에서 setOnClickListener로 버튼을 누르면 어떤 작업을 수행할 것인지 설정할 수 있다.
- ImageButton: 사용자가 누르거나 클릭할 수 있는 이미지 버튼을 표시한다.
- ChipGroup: 다수의 Chip을 관리할 수 있는 컴포넌트이다.
- Chip: 워드나 카테고리, 요소, 타입 등을 표현할 때 종종 타원형의 Background에 해당 텍스트를 표현해주는 버튼이다.
- CheckBox: 선택하거나 선택을 해제할 수 있는 체크박스 유형의 상태 버튼이다.
- RadioGroup: 이를 사용하면 세트에서 하나의 옵션을 선택한다. User가 사용가능한 모든 옵션을 나란히 볼 필요가 있다고 생각되면 상호 배타적인 옵션 세트에 RadioGroup을 사용하면 된다.
- RadioButton: 원형으로 된 체크박스이다.
- Switch: 텍스트 오른쪽에 스위치를 생성한다. Switch는 두가지 옵션 중에서 선택할 수 있는 2상태 토글 스위치 위젯이다. 드래그하여 선택한 옵션을 선택하거나 간단히 눌러서 선택할 수 있다.
- FloatingActionButton: UI위에 원형으로 떠있는 듯한 버튼이다. 이 버튼을 활용하여 특수 동작 기능을 넣을 수 있다.
3. Widgets
- ImageView: View의 속성을 상속받아 공간 안에 사진을 넣을 수 있다.
- WebView: View의 속성을 상속받아 특정한 URL과 연결된 뷰를 넣는다. 각 OS별로 내장된 웹 브라우저를 View 형태로 앱에서 표현할 수 있다.
- ProgressBar: 현재 진행 상황을 알려주는 원형의 컴포넌트이다.
- ProgressBar(Horizontal): 수평의 작업 진행률을 나타내주는 사용자 인터페이스 요소이다. 왼쪽에서부터 시작하여 오른쪽 방향으로 채워진다.
- SeekBar: 드래그 가능한 썸을 추가하는 ProgresBar의 확장 위젯이다. 연속적인 실선 위를 움직이며 왼쪽이나 오른쪽으로 끌거나 화살표 키를 이용하여 현재 진행률 수준을 설정해준다.
- SeekBar(Discrete): 불연속적으로 놓여있는 점 위를 움직이며 조절하는 컴포넌트이다.
4. Containers
- Spinner: 여러개의 값 중 1개를 선택하기 위해 사용하는 Android에서 기본으로 제공해주는 위젯이다.
- RecyclerView: 스크롤이 가능한 Container에 여러개의 View를 담아서 보여주는 View Group으로 ListView가 더 진보하고 유연해진 버전이다.
- ListView는 100개의 item을 표시한다고 하면 100개의 View 객체를 일일히 다 생성한다. 하지만 RecyclerView는 화면에 보여지는 일정 갯수의 View 객체만 생성 후 스크롤 할 때마다 화면 밖으로 나간 View의 정보를 ViewHolder에 저장시켜놓고 해당 View 객체들을 재활용한다.
- ScrollView: 위아래 수직 방향으로 스크롤하는 기능이다. 이는 하나의 위젯에서만 사용가능하다.
- HorizontalScrollView: 좌우 수평방향으로 스크롤하는 기능이다.
- NestedScrollView: 한 화면에 여러개의 스크롤을 사용할 때 사용하는 기능이다.
- FragmentContainerView: FragmentActivity 내의 어떤 동작, 또는 사용자 인터페이스의 일부이다. Activity의 모듈식 섹션이다. 여러개의 Fragment들을 하나의 Activity에 결합하여 창이 여러개인 UI를 빌드할 수 있으며, 하나의 Fragment를 여러 Activity에서 재사용할 수 있다. FragmentContainerView는 자체적인 수명 주기를 가지고, 자체 입력 이벤트를 수신하고, Activity 실행 중에 추가 및 삭제가 가능하다.
- 다른 Activity에 재사용할 수 있는 하위 액티비티와 같은 개념이다.