0101011001010111

3-2 Android UI - Layout _Constraint Layout_예제풀어보기 본문

Kotlin/안드로이드_[입문]앱개발

3-2 Android UI - Layout _Constraint Layout_예제풀어보기

[진주] 2023. 8. 15. 21:13
728x90
반응형

이 예제를 풀 때,

아래 버튼 3개 AAA,BBB,CCC가 1:1:1 배율로

나란히 하는것에서 조금 헤맸다.


 

헤맸던 이유 중 첫 번째,

app:layout_constraintHorizontal_weight값을 줄 때에,

android:layout_width="0dp"가 되어야 하는 이유가 이해가 안되어서 공부해 보았다.

 

 

app:layout_constraintHorizontal_weight 속성을 사용하려면

대상 뷰의 android:layout_width 속성을 0dp로 설정해야 합니다.

여기서 0dp는 ConstraintLayout에서 "MATCH_CONSTRAINT"로 해석되며,

이것은 뷰가 사용 가능한 공간 내에서 조절될 수 있음을 나타냅니다.

 

ㄴ 여기서 MATCH_CONSTRAINT는 배웠 듯, 해당 크기에 맞게~ 설정 이런의미이다.

 

 

app:layout_constraintHorizontal_weight를 사용하는 주된 이유는 뷰들 사이에 비율을 지정하려는 경우입니다.

뷰의 너비를 0dp로 설정하면 ConstraintLayout은 해당 뷰를 사용 가능한 최대 크기로 확장하려고 시도합니다.

그런 다음 app:layout_constraintHorizontal_weight 속성은 사용 가능한 공간을 뷰들 사이에 어떻게 분배할지를 결정합니다.

 

 

 

예시 ▼

  • 두 개의 뷰가 있고, 둘 다 android:layout_width="0dp"로 설정되어 있습니다.
  • 첫 번째 뷰의 app:layout_constraintHorizontal_weight는 1이며, 두 번째 뷰의 app:layout_constraintHorizontal_weight는 2입니다.
  • 이 경우 두 번째 뷰는 첫 번째 뷰의 두 배의 너비를 차지하게 됩니다.

 

이 방식을 사용하면 디바이스의 화면 크기나 방향에 관계없이 일정한 비율로 뷰들을 배치할 수 있습니다.

요약하면, android:layout_width="0dp"는 뷰가 사용 가능한 최대 너비로 확장되도록 지시하는 것이고, app:layout_constraintHorizontal_weight는 그 사용 가능한 공간을 어떻게 분배할지를 결정하는 것입니다.

 

 


 

헤맸던 이유 중 두 번째,

app:layout_constraintStart_toEndOf="@id/btnA"
app:layout_constraintEnd_toStartOf="@+id/btnC"
app:layout_constraintTop_toBottomOf="@+id/button3"
app:layout_constraintHorizontal_weight="1"

 

여기서 Start_toEnd 뭐 이런게 나오는데

 

이 구조가 무엇인지 알지 못하였다.

 

해당부분은 공부하여

https://vjinjoov.tistory.com/57

로 정리해 보았다.

 

요약하자면 뜻은, 

app: layout_constraint(방향)이 위젯의 해당방향에서_to(대상 위젯의 해당방향으로of 

        ="대상id  /  parent"

 

이다.

 


 

이 부분 두 개를 이해하고 

다음과 같이 올바르게 예제를 해결 할 수 있었다.

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형