1월 1일 오전은 할일이 없다.
여자친구는 이직한 회사 자기소개 준비중이다. 나는 오후에 약속이다. 갤럭시 A52s 5G 받으러 가야한다.
카이막도 완성되려면 1시간 더 기다려야 한다.
이런 적적하고 뭔가 게임도 하기 싫은 시간에는 역시 블로그 포스팅이 제격이다.
그래서 오늘은 할일도 없는김에 저번에 하던 ConstraintLayout의 가상 오브젝트 중 Group에 대하여 정리할 것이다.
- Group
1명 이상의 사람이 모여서 집단을 만드는것을 우리는 영어로 그룹이라고 한다. 이 개념을 안드로이드 View의 시각으로 바라본다면, 1개 이상의 View를 모아서 집단으로 만드는 것이 Group이다. 이러한 Group을 요래조래 해본 결과 아래와 같은 특징을 보인다.
- 기본적으로 1개 이상을 대상으로 그룹을 지정할 수 있다.
- 그룹과 View 혹은 그룹끼리 그룹을 지정할 수 있다.
- 만약 하위 그룹 혹은 View의 Visibility가 GONE 혹은 INVISIBLE 이여도, 상위 그룹의 Visibility가 VSIBILE이면 하위 그룹의 Visibility는 무시된다.
Group은 사용할 때 아래 2가지 속성을 써줘야 한다.
- android:visibility = " visible, gone, invisible 중 하나"
- app:constraint_referenced_ids = " 아이디 값들 콤마(,)를 기준으로 나뉜다"
사용방법은 아래 예제를 통하여 보면 편할 것이다.
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".MainActivity">
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="테스트"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="이 것은 테스트를 위한 텍스트뷰 입니다."
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btn1" />
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="temp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv2" />
<androidx.constraintlayout.widget.Group
android:id="@+id/group1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:constraint_referenced_ids="btn1, tv2, btn3" />
<androidx.constraintlayout.widget.Group
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="visible"
app:constraint_referenced_ids="tv1, group1" />
<TextView
android:id="@+id/tv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
'안드로이드 > View' 카테고리의 다른 글
[안드로이드] ConstraintLayout의 속성에 대하여 (0) | 2022.02.05 |
---|---|
[안드로이드] ConstraintLayout - Barrier에 대하여 (2) | 2021.12.28 |
[안드로이드] ConstraintLayout - Guideline에 대하여 (0) | 2021.12.26 |