xml 원본에 추가된 속성 확인하기
실제 앱을 만들 때는 모든 것을 디자이너 도구의 화면에서 해결할 수 없는 경우가 많다.
화면에 들어가는 뷰가 복잡하게 배치되기도 하고 뷰들을 서로 중첩하여 쌓아두어야 할 수도 있으므로 앞으로xml 원본 코드를 수정할 때가 점점 많아 질 것이다.
<?xml version="1.0" encoding="utf-8"?>
xml 파일에 일반적으로 추가되는 정보로 이 파일이 xml 형식으로 된 것임을 알려준다.
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
xmlns:android 속성은 xml 레이아웃 파일이라면 하나의 파일에 한 번만 사용하면 된다.
xmlns 뒤에 있는 android 라는 이름이 나머지 속성의 접두어 Prefix 로 사용된다.
android:layout_width 속성 앞에 있는 android: 는 xmlns:android 로 지정된 정보를 참조하여 사용한다는 의미이다.
- xmlns:android 안드로이드 기본 SDK 에 포함되어 있는 속성을 사용한다.
- xmlns:app 프로젝트에서 사용하는 외부 라이브러리에 포함되어 있는 속성을 사용합니다. app 라는 단어는 다른 것으로 바꿀 수 있다.
- xmlns:tools 안드로이드 스튜디오의 디자이너 도구 등에서 화면에 보여줄 때 사용한다. 이 속성은 앱이 실행될 때는 적용되지 않고 안드로이드 스튜디오에서만 적용된다.
android:id 속성
ConstraintLayout 태그 안에 들어 있는 태그 속성 중 android:id 속성은 뷰를 구분하는 구분자 역할을 한다.
id 속성이 사용되는 용도는 첫째, xml 레이아웃 파일 안에서 뷰를 구분할 때,
두 번째는 xml 레이아웃 파일에서 정의한 뷰를 자바 소스 파일에서 찾을 때 이다.
xml 레이아웃 파일 안에는 여러 개의 뷰를 추가할 수 있고
추가한 각각의 뷰는 다른 뷰의 왼쪽이나 오른 쪽 등에 연결될 수 있다. 이때 다른 뷰가 어떤 것인지 지정할 필요가 있는데 그 목적으로 id 속성 값이 사용된다.
제약 레이아웃 에서 하나의 뷰를 다른 뷰와 연결할 때 사용하는 xml 속성의 이름은 다음과 같은 규칙을 가진다.
layout_contraint[소스뷰의연결정]_[타깃뷰의연결점]="[@+id/아이디값]"
app:layout_contraintStart_toStartof="@+id/button"
*** @+id/아이디값
안드로이드 초기 버전에서는 @+id 의 형식이 xml 레이아웃 파일에 id 값을 추가한다는 의미로 만들어졌습니다. 따라서 이렇게 만들어진 id 값을 사용할 때는@id 형식과 @+id 형식을 혼용하여 사용했으나 지금은 @+id 형식을 주로 사용하고 @id 형식은 거의 사용하지 않습니다.
id 속성
layout_contraintTop_toTopOf
layout_contraintTop_toBottomOf
layout_contraintBottom_toTopOf
layout_contraintBottom_toBottomOf
layout_contraintLeft_toTopOf
layout_contraintLeft_toBottomOf
layout_contraintLeft_toLeftOf
layout_contraintLeft_toRightOf
layout_contraintRight_toTopOf
layout_contraintRight_toBottomOf
layout_contraintRight_toLeftOf
layout_contraintRight_toRightOf
Left 대신 Start 를, Right 대신 End를 사용할 수 있으니 사용할 수 있는 속성은 더 많아 진다.
Guidline 클래스
Guideline 클래스는 외부 라이브러리에 들어 있어 패키지 이름인 android.constraintlayout.widget 을 함께 붙여준다.
태그에는 필수 속성인 layout_width 와 layout_height 속성과 값이 들어 있다.
id 값으로 @+id/guidline 이 설정되어 있다. 그 다음 속성으로는 android:orientation 이 있는데 가이드라인은 가로 또는 세로 방향 중에서 어느 방향인지를 지정해야 하므로 orientation 도 필수 속성이다.
부모 레이아웃의 벽면에서 얼마나 떨어뜨려 배치할 지 지정하는 속성
- layout_constraintGuide_begin 세로 방향인 경우 왼쪽부터, 가로 방향인 경우 위쪽부터의 거리 지정
- layout_constraintGuide_end 세로 방향인 경우 오른쪽부터, 가로 방향인 경우 아래쪽부터의 거리 지정
- layout_constraintGuide_percent 는 layout_constraintGuide_begin 속성 대신 지정하되 % 단위로 거리 지정
*제약 조건을 설정하는 속성은 외부 라이브러리의 속성이므로 속성 이름 앞에 모두 app:접두어가 붙어 있다.
'New 정보 > IT정보' 카테고리의 다른 글
KT alpha 메타버스 구축 사업 착수, 삼성 러기드폰, 카카오게임즈 오딘, 여기어때 공간대여, 메타버스 클라우드 솔루션 엑스포 (1) | 2022.01.14 |
---|---|
안드로이드 스튜디오 삼성 단말 연결하고 설정 바꾸는 방법 (0) | 2021.06.21 |
초보 안드로이드 앱 - Hello World 실행하기 (0) | 2021.06.18 |
웹앱, 하이브리드앱, 네이티브앱 차이점 (1) | 2021.03.31 |
음원공룡 스포티파이 국내 서비스 무료재생 빠져 개시? (0) | 2021.02.02 |
댓글