Constraintlayout(제약 레이아웃)

BSpindroid·2022년 1월 4일
1

콘스트레인트

목록 보기
2/2
post-thumbnail

Constraintlayout 을 사용하는 이유??

장점

- 1. %로 설정할수 있기 때문에 다이스의 대응이 편함!
- 2. 1 depth레이아웃, 화면을 그리는 퍼포먼스가 좋다!

단점

- 기존에 작성된 레이아웃이 리니어와 렐러티브레이아웃이기 때문에 주로 사용되진 않음
- 디자인에서는 1소스를 주기 때문에 멀티디바이스에서 정상적 표시될거라는 확인할 수가 없음
- 새로 작성하는 화면 이외에는 기존에 작성된 레이아웃을 사용하기에 사용빈도가 적음!

1. 레이아웃 내의 대상의 배치


어렵게 생각하지말고 위 사진처럼 3가지 기준만 명확하게 이해하면된다

3가지 기준

-1. 대상에 근접한면
-2. 붙일 대상의 면
-3. 붙일 대상의 id

위사진과 같이 대상에 근접한 면과 붙일 대상의 면을 작성하고

ex) app:layout_constraintRight_toLeftof|toRightOf="@+id/btn1"

id에 붙일 대상의 id를 적어주면 된다
(그림에 위젯이라고 작성하였지만 위젯이 될수도 있고 레이아웃이 될수도 있으므로 이글에서는 대상이라고 지칭하였습니다)

2.대상을 레이아웃 내에 배치하기

  1. 레이아웃이 수평(horizontal), 수직(vertical) 인지 설정하고
  2. 위에서 위젯만 배치하게 되면 오류가 발생하게 되는데 레이아웃 안에서 위젯이 어디에 위치해야할지 몰라서 발생하는 것이다. 따라서 위젯이 레이아웃 내에서 어디에 위치할지 명시해주어야 해당 오류가 발생하지 않는다

    1절에서 위젯위치를 배치한것처럼 배치하고 레이아웃은 id대신 parent를 작성해주면된다
    ex) app:layout_constraintTop_toTopOf="parent"

margin과 padding 에 관해서

android:layout_marginEnd="20dp", android:layout_marginStart="20dp"

레이아웃과 관련된 글을 많이 보면서 ~~End와 ~~Start가 무엇을 의미하는지 정확히 몰랐다
이번에 제약레이아웃을 학습하면서 Start는 left와 동일하고 End는 right와 동일하다는것을 알게되었다

constraint 레이아웃의 활용

  1. 한라인에 2개의 텍스트뷰를 배치해 유동적인 크기 설정
  2. 한라인에 크기가 다른 2개의 텍스트뷰를 라인에 같게 설정
  3. 여러 위젯의 크기를 한 위젯의 크기만 조정하여 정렬하기
  4. 레이아웃 내의 대상의 위치를 chain을 이용해 화면조정
    위와같이 다양한 활용을 해보았고 하나씩 직접 사용해본 경험을 토대로 하나하나씩 설명해볼 예정이다!

마치면서...

첫번째 글이어서 잘 작성했는지 문제가 많을수도 있다고 생각합니다! 글에 대한 지적, 질문 언제나 환영합니다! 저의 설명이 보고 잘 이해가 되지 않는다면 아래 링크를 참조해주세요!
https://www.youtube.com/watch?v=cOnF14sziZU

profile
Android 신입 개발자를 향해!

0개의 댓글