Common : 자주 사용하는 컴포넌트들이 있다.
Text : 텍스트 상자, 각종 다양한 텍스트 상자들이 있다.
Buttons : 각종 다양한 버튼들이 존재
Widgets : Widget(위젯)은 어플리케이션 내부에 있는 소형 어플리케이션 같은 느낌으로 주기적으로 업데이트를 받는 장점이 있다.
Layout : 레이아웃, 즉 현재 보고 있는 화면의 틀을 잡아준다고 보면된다.
Containers : 컨테이너
Google : 구글에서 지원하는 광고 판하고 맵 뷰가 있다.
이번 정리에서는 Layout과 Legacy를 제외하고 알아보자
1) TextView
화면에 텍스트를 표시하는 기능
2) Plain Text
표준 텍스트 키보드를 표시하는 textview
3) Password
표준 텍스트 키보드를 표시하고 개인 정보 보호를 위해 입력 한 텍스트를 숨김
4) Password (Numeric)
숫자 키보드를 표시하고 개인 정보 보호를 위해 입력 한 텍스트를 숨김
5) E-mail
스페이스 바 왼쪽에 "@" 문자를 추가하여 표준 텍스트 키보드를 표시
6) Phone
사용자가 전화번호 형식의 텍스트(xxx-xxxx)를 입력하기 쉽게 숫자 키보드가 올라오고 '-'가 위치
7) Postal Address
사용자가 우편번호 형식의 텍스트를 입력하기 쉽게 키보드 맨 윗줄에 길게 탭했을 때 숫자가 입력됨
8) Multiline Text
새 줄을 추가하기 위해 Enter 키를 추가하여 표준 텍스트 키보드를 표시
9) Time
사용자가 시간 형식의 텍스트(예) 12:20)를 입력하기 쉽게 ":" 문자를 추가하여 숫자 키보드를 표시
10) Date
사용자가 날짜 형식의 텍스트(예) 2020/09/23)를 입력하기 쉽게 "/"문자를 추가하여 숫자 키보드를 표시
11) Number
기본 숫자 키보드를 표시합니다. '-', ',' '.' 등의 부호가 입력되지 않음
12) Number (Signed)
기본 숫자 키보드를 표시 , 시작시 + 또는-문자를 허용(양수,음수)
숫자를 입력하는 도중에는 '-'를 입력할 수 없고, 이 외에 ','와 '.'를 쓸 수 없음
13) Number (Decimal)
기본 숫자 키보드를 표시, 소수점('.')을 허용합니다. '-'와 ','는 사용할 수 없음
14) AutoCompleteTextView
사용자가 입력하는 동안 자동 완성 제안을 표시하는 편집 가능한 텍스트보기.
제안 목록이 드롭 다운 메뉴에 표시되어 사용자가 편집 상자의 내용을 바꿀 항목을 선택
15) MutilAutoCompleteTextView
확장 가능한 편집 가능한 텍스트보기로, AutoCompleteTextView사용자가 전체 내용 대신
입력하는 텍스트의 하위 문자열에 대한 완성 제안을 표시
16) CheckedTextView
체크박스를 제공하는 확장 TextViewMainActivity에서 setOnClickListner을 통해 체크 박스의 체크와 해제 속성을 부여 할 수 있음
17) TextlnputLayout
텍스트를 입력하는 곳이 Layout의 속성을 가짐
Layout의 속성을 설정하듯이 속성을 설정할 수 있음
1) Button
사용자가 탭하거나 클릭하여 작업을 수행 할 수있는 사용자 인터페이스 요소
MainActivity에서 setOnClickListener로 버튼을 누르면 어떤 작업을 할 것인지 설정할 수 있음
2) ImageButton
사용자가 누르거나 클릭 할 수있는 이미지 버튼을 표시
3) Chip
워드 혹은 카테고리, 요소, 타입 등을 표현 할 때 종종 타원형의 background에 그 텍스트를 표현하는 버튼
4) ChipGroup
다수의 chip을 관리할 수 있는 컴포넌트
5) CheckBox
선택 또는 선택 해제 할 수 있는 체크박스 유형의 상태 버튼
6) RadioButton
원형으로 된 체크박스
7) RadioGroup
라디오 그룹을 사용하면 세트에서 하나의 옵션을 선택.
사용자가 사용 가능한 모든 옵션을 나란히 볼 필요가 있다고 생각되면 상호 배타적인 옵션 세트에 라디오 그룹을 사용
8) ToggleButton
토글 버튼을 사용하면 두 상태 사이에서 설정을 변경, 누르기 전 후 버튼 안의 텍스트 변경
기본은 온,오프
9) Switch
텍스트 오른쪽에 스위치 생성
스위치는 두 가지 옵션 중에서 선택할 수있는 2 상태 토글 스위치 위젯. 드래그하여 선택한 옵션을 선택하거나 간단히 탭하여 마치 확인란 인 것처럼 토글
10) FloatingActionButton
UI 위에 원형의 떠 있는 듯한 버튼, 버튼을 활용하여 특수 동작 기능 넣을 수 있음
1) View
액티비티 내에서 공간을 설정
2) imageView
View 의 속성을 상속받아 공간 안에 사진을 넣음
3) WebView
View 의 속성을 상속받아 특정한 url과 연결된 뷰를 넣음
각 OS별 내장된 웹 브라우저를 뷰형태로 앱에서 표현
4) VideoView
View를 상속받고 액티비티에 동영상을 넣음
5) CalendarView
View를 상속받아 캘린더를 넣음
탭, 클릭 이벤트로 날짜를 선택 할 수 있으며 원하는 날짜로 달력을 스크롤 하고 찾는 기능
6) ProgressBar
진행상황을 알려주는 원형의 컴포넌트
7) ProgressBar (horizontal)
수평의 작업 진행률을 나타내는 사용자 인터페이스 요소
왼쪽 끝에서 부터 오른쪽으로 채워짐
8) SeekBar
드래그 가능한 썸을 추가하는 ProgressBar의 확장 위젯.
연속적인 실선 위를 움직이며 왼쪽 또는 오른쪽으로 끌거나 화살표 키를 사용하여 현재 진행률 수준을 설정
9) SeekBar (Discrete)
불연속적으로 놓여있는 점 위를 움직이며 조절하는 컴포넌트
10) RatingBar
SeekBar 및 ProgressBar의 확장으로 별표로 등급 혹은 만족도 등을 표시
11) SearchView
사용자가 검색어 입력 후 search provider 에게 검색을 요청할 수 있는 UI 를 제공
검색어 추천 리스트나 검색 결과 리스트를 보여주고 사용자는 해당 리스트에서 원하는 item 을 선택할 수 있다
12) TextureView
TextureView를 사용하여 비디오나 openGL 같은 콘텐츠 스트림을 표시 할 수 있습니다
13) SurfaceView
뷰 계층 구조에 포함 된 형식과 크기의 제어가 가능한 전용 드로잉 표면을 제공
그래픽 처리가 빠른 View
애니메이션이나 동영상과 같이 연산처리가 많이 필요한 뷰를 위해 사용된다
14) Horizontal Divider
수평으로 나눔
15) Vertical Divider
수직으로 나눔
1) Spinner
여러개의 값 중 1개를 선택하기 위해 사용하는 안드로이드 에서 제공해주는 기본 위젯
2) RecyclerView
스크롤이 가능한 컨테이너에 여러 개의 뷰를 담아서 보여주는 뷰 그룹으로 ListView가 더 진보하고 유연해진 버전
( ListView는 100개의 item을 표시한다고 하면 100개의 view 객체를 일일이 다 생성
RecyclerView는 화면에 보여지는 일정 갯수의 view 객체만 생성 후 스크롤할 때마다 화면 밖으로 나간 view의 정보를 ViewHolder에 저장시켜놓고 해당 view 객체들을 재활용)
3) ScrollView
수직(위아래)로 스크롤하는 기능
하나의 위젯만 가능
4) HorizontalScrollView
수평(좌우)으로 스크롤하는 기능
5) NestedScrollView
한 화면에 여러개의 스크롤을 사용할 때
6) ViewPager2
RecyclerView를 기반
ViewPager에서는 좌우 스크롤링만 가능, 상하 스크롤링기능을 추가
7) CardView
CardView는 FrameLayout 클래스를 확장
둥근 모서리, 배경과 그림자가 추가된 FrameLayout
8) AppBarLayout
LinearLayout 머티리얼 디자인 앱 바 개념의 많은 기능, 즉 스크롤링 제스처를 구현 하는 카테고리
9) BottomAppBar
.NET Framework를 "cradles" 시키는 모양의 배경을 지원하는 툴바의 확장
10) NavigatationView
애플리케이션의 표준 탐색 메뉴, 메뉴 내용은 메뉴 리소스 파일로 채울 수 있음
11) BottomNavigationView
NavigatationView 하단 위치
12) Toolbar
응용 프로그램 콘텐츠 내에서 사용하기위한 표준 도구 모음
TabLayout
탭을 표시하기위한 가로 레이아웃을 제공
13) TabLayout
TabLayout은 탭에 따라 화면을 바꿀 수 있다.
14) TabItem
TabLayout 레이아웃 내에서 탭 항목을 선언할 수 있는 특수한 '보기'
TabLayout에 추가되지 않으며 탭 항목의 텍스트, 아이콘 및 사용자 정의 레이아웃을 설정할 수 있음
15) ViewStub
차원이 없는 가벼운 뷰로, 무엇을 그리거나 레이아웃에 참여하지 않습니다.
따라서 확장하든 뷰 계층 구조에 그대로 남겨두든 리소스 사용이 적습니다.
16) include
레이아웃에 재사용 가능한 구성요소를 추가
17) fragment
FramentActivity 내의 어떤 동작 또는 사용자 인터페이스의 일부, 액티비티의 모듈식 섹션
여러 개의 프래그먼트를 하나의 액티비티에 결합하여 창이 여러 개인 UI를 빌드할 수 있으며, 하나의 프래그먼트를 여러 액티비티에서 재사용할 수 있음
자체적인 수명 주기를 가지고, 자체 입력 이벤트를 수신하고, 액티비티 실행 중에 추가 및 삭제가 가능
(다른 액티비티에 재사용할 수 있는 "하위 액티비티"와 같은 개념)
18) NavHostFragment
자체 포함 된 navigation이 발생할 수 있도록 레이아웃 내에 영역을 제공
19) view
다른 View들을 포함하고 있거나 포함할 수 있는 View를 말하며, 일반적으로 ViewGroup을 상속하면서 Layout이 아닌 클래스를 지칭
20) requestFocus
해당 뷰 focus 준다.
1) Group
group는 ConstraintLayout에서 제공하는 helper 중 하나로
여러 뷰들의 visibility를 그룹으로 묶어 관리하기 편하게 해 줍니다.
그룹을 이용해 여러 뷰들을 묶어주게 되면 코드가 간결해집니다.
2) Barrier (Horizontal)
Barrier을 이용하여 뷰들의 크기가 런타임으로 변할 때 적합한 제약조건을 생성할 수 있습니다.
해당 Barrier에 연관된 뷰 들은 크기/위치가 Barrier에 맞게 변경이 됩니다.
Barrier는 start, top, end, bottom 중 하나의 위치로 지정될 수 있습니다.
3) Barrier (Vertical)
Barrier를 수직으로 설정할 수 있습니다.
4) Flow
Flow는 기존에 ConstraintLayout에서 LinearLayout처럼 동작하게 하는
Chain과 유사하게 수평 또는 수직으로 배치를 할 수 있게 해 줍니다.
5) Guideline (Horizontal)
가로축 방향을 가진 가상의 뷰입니다.
Guideline는 부모 뷰의 특정 위치를 기준점으로 삼을 때 사용합니다.
6) Guideline (Vertical)
세로축 방향을 가진 가상의 뷰입니다.
7) Layer
모형을 겹쳐서 한꺼번에 출력할 수 있습니다.
8) ImageFilterView
이미지를 표시하며 색조, 명도, 색온도, 대비 등을 수정을 가능하게 하는 뷰입니다.
9) ImageFilterButton
이미지를 표시하며 색조, 명도, 색온도, 대비 등을 수정을 가능하게 하는 버튼입니다.
10) MockView
레이아웃을 프로토타입화하는 데 유용한 보기입니다.
대각선과 함께 레이블(기본적으로 뷰 ID)을 그릴 수 있는 기본 뷰입니다.
UI를 작성하는 동안 임시 모의 보기로 유용합니다.
1) AdView
View배너 광고를 표시API
2) MapView
Google지도 서비스에서 얻은 데이터와 함께지도를 표시하는 AP