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

댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

Forensics .pyc 파일 .py로 복구하기

Android Minimum touch target size

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

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)