반응형
Notice
Recent Posts
Recent Comments
Link
NOW OR NEVER
[Android] UI 요소 본문
반응형
UI
view
- ui 요소들은 직접 혹은 간접적으로 다 view 클래스를 상속 받고 있다.
- 모든 ui 요소들의 부모 클래스
- Widget과 Layout으로 나뉜다
- 눈에 보이는 모든 ui 요소를 지칭
- id에 맞춰 객체 생성
View Binding
- view 객체들을 자동으로 변수로 선언하고 받는 기능
- kotlin의 경우 view들을 배치 시 설정된 아이디가 있는 경우 아이디에 해당하는 변수가 만들어지고 자동으로 할당된다
- 변수 이름, findViewById등 개발자가 작업하지 않아도 자동으로 코드 삽입
- view 객체들을 자동으로 받고 선언하는 기능이 자바에서도 사용할 수 있도록 만들어짐
- layout 폴더(res/layout)에 있는 xml 파일 하나 당 하나의 클래스 생성 -> 자동으로 생성되는 클랫의 이름은 xml 파일의 이름으로 생성된다(activity_main.xml -> ActivityMainBinding)
- view binding을 설정하기 위해서는 gradle 파일에 android 부분에 아래 코드(buildFeature은 안드로이드 스튜디오 구형 버전) 추가(res/build.gradle(Mobile : app)) -> 입력 후 sync now 클릭
viewBinding{ enable = true }
- layout Inflator
- xml을 가지고 눈에 보이는 화면 요소들을 만들어주는 것
- activity 클래스가 가지고 있는 property 지정해서 세팅해줌
Layout
- 내부 view들을 통합 관리하고 배치를 어떻게 할 것인가.
- layout 배치시 그 위에 다른 view들을 배치할 수 있다.
- 어떤 걸 쓰느냐에 따라 view들이 배치되는 모습이 달라짐
- view들을 집어 넣을 수 있다 해서 container로 부르기도 한다.
- view들을 그룹한다고 해서 view group이라고 부르기도 한다.
- layout 안에 또 layout을 배치할 수 있다
- view를 어떻게 배치할 것인가 결정
- 화면 구성
- containers : 포함만 시키는 것
- constraintLayout 마우스 우클릭 - convert view - linear layout - attributes - common attributes - orientation - vertical
- text view 크기 : common - textview - - common attributes -text appearence
- res/layout - new - layout resource file
- 하나의 layout은 다 수의 view를 가질 수 있다. layout 입장에서 붙어 있는 view들은 child이다
- parent 입장에서 child 가져올 때 배열로 반환
- child 입장에서 parent 반환 시 하나만 반환
- linear layout : 위에서 아래 혹은 왼 쪽에서 오른 쪽, 안드로이드에서 가장 많이 사용되는 layout
- orientation : 가장 중요한 기능으로 view가 배치되는 모양이다. horizontal은 가로, vertical은 세로이다.
- layout weight : 레이아웃 내에서 차지 할 비율
Widget
- 어떠한 기능을 가지고 있고 사용자와 상호작용(터치, 키보드 입력 등)하는 요소들
- 버튼을 사용자가 터치를 하게 되면 개발자가 설정한 기능이 작동하는 요소들
Kotlin만 가능
- Listener 등을 구현할 때 overriding 할 메서드가 하나 밖에 없는 경우 매개변수를 함수로 받는 고차 함수도 제공
- 자바에는 고차함수라는 개념이 없어서 제공X
etc
- 프로젝트 만들기 - empty view activity(안드로이드 스튜디오 하위 버전일 경우 empty activity)
- 단위
- matchParent: layout에 맞게 꽉 채우는 것
- wrapContent : 자신을 완벽하게 표현 할 수 있는 최소 크기
- 보통 dp로 크기로 정해주기 본단 matchContent와 wrapContent를 조합해서 활용한다,
- plain text : 입력 요소
'Android' 카테고리의 다른 글
[Android] UI 요소 - View 2 (0) | 2023.06.14 |
---|---|
[Android] Compound Component (0) | 2023.06.12 |
[Android] UI 요소 - View (0) | 2023.06.11 |
[Android] LogCat & UI 요소 - Widget (0) | 2023.06.08 |
[Android] Application 개발의 개요 (0) | 2023.06.07 |