정상에서 IT를 외치다

[Android, ConstraintLayout, Barrier] 3. ConstraintLayout 배리어 설정하기 본문

안드로이드

[Android, ConstraintLayout, Barrier] 3. ConstraintLayout 배리어 설정하기

Black-Jin 2018. 5. 18. 18:30
반응형

ConstraintLayout 에서 배리어 사용법에 대해 포스팅하겠습니다.


ConstraintLayout 1. 체인

ConstraintLayout 2. 가이드라인 

ConstraintLayout 3. 배리어 


배리어는 다국어 지원에 유용하게 사용하실 수 있습니다.


예를 들어 세로로 2개의 텍스트뷰가 있습니다.


이 둘의 길이가 다를 때 더 긴쪽의 텍스트뷰 오른쪽에 뷰를 배치하고 싶을때 사용하시면 됩니다.


<android.support.constraint.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="end"
app:constraint_referenced_ids="tv1,tv2" />

배리어는 위와 같이 설정하시면 됩니다.


여기서 barrierDirection 값을 통해 왼쪽, 오른쪽의 기준을 설정하실 수 있습니다.


constratin_referenced_ids 에 기준 시킬 뷰들의 아이디를 콤마( , )로 구분하여 나열하면 됩니다.


전체 코드는 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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">

<TextView
android:id="@+id/tv1"
android:text="가나다라마바사아자차카타파하"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@id/tv2"/>

<TextView
android:id="@+id/tv2"
android:text="가나다라마바사"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/tv1"
app:layout_constraintBottom_toBottomOf="parent"/>

<android.support.constraint.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierDirection="end"
app:constraint_referenced_ids="tv1,tv2" />

<Button
android:id="@+id/btn1"
android:text="barrier"
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/barrier"
app:layout_constraintBottom_toBottomOf="parent"/>

</android.support.constraint.ConstraintLayout>



tv1 이 더 길때




tv2 이 더 길때



반응형
Comments