Android ConstraintLayout Barrier

사용 언어: Kotlin 1.8.10
사용 버전: Android Studio Flamingo 2022.2.1 Patch 1
​

안드로이드 ConstraintLayout Barrier를 알아보겠습니다.

배리어는 방어막, 보호막이라는 뜻을 가지는데요. 즉, 어떠한 뷰를 보호하는 가상의 결계를 생성합니다.
쳇, 결계인가...
​
​
말로 들으니 뭔지 모르겠네요.
코드를 봅시다.
​
자, 이러한 layout이 있습니다.
button이 현재는 가장 긴 글자인 Good에 맞춰져 있네요.





만약 클릭을 눌러서 100이 증가하여 10000으로 된다면? 아마도 10000이 Click 버튼과 겹쳐질 겁니다.

정말 골치 아픈 상황이군요.

한 번 보시죠.






으아 생각만 해도 아찔하군요.

이럴 때, Good과 100을 지키는 Barrier를 만듭니다.

​

29 번째 줄처럼 Barrier를 만듭니다.

33 번째 줄 barrierDirection에는 방향을 정합니다. 저는 해당 뷰의 끝을 지키기 때문에 end를 적었습니다.

34 번째 줄처럼 constraint_referenced_ids에는 지킬 id들을 적습니다. 저는 위의 두 개의 TextView의 id를 적었습니다.








이제, Button으로 갑시다.

43 번째 줄처럼 app:layout_constraintStart_toEndOf에는 Barrier의 id를 적어줍니다.






미리 보기를 보면 이렇게 됩니다. 무슨 장막이 생겼네요.





실행해 봅시다.





짜잔.

​

​

​

Barrier에는 gone을 다루는 기능이 있습니다.

barrierAllowsGoneWidgets인데요.

true 면, gone된 해당 뷰가 0dp가 되어도 그 위치에 있다고 생각하고 막힙니다.

false 면, gone된 해당 뷰가 없다고 생각하고 막습니다.

​

34 번째 줄처럼 사용합니다. app:barrierAllowsGoneWidgets="true"







true 일 때










false 일 때





끝.



카테고리: Android

댓글

이 블로그의 인기 게시물

음악 총보(Score), 파트보(Part)

Python urllib.parse.quote()

KiCad 시작하기 6 (FreeRoute 사용하기 1)

Kivy 시작하기 12 (Pyinstaller로 exe 파일 만들기)

일본어 문장부호

Android 특정 SDK Version 설정하기

KiCad 시작하기 4 (기존 회로도 수정 및 추가)

Android Compose Hilt

Python urllib.request.urlopen()

KiCad 시작하기 7 (FreeRoute 사용하기 2)