본문 바로가기
카테고리 없음

Android - 레이아웃

by 지민재 2022. 10. 17.
반응형
SMALL

레이아웃 

  •  안드로이드 스튜디오에서는 기본적인 레이아웃을 제약 레이아웃(Contraint Layout)으로 자동 설정합니다.

제약 조건 이해하기

  • 제약 레이아웃의 가장 큰 특징은 뷰의 위치를 결정할 때 제약 조건(Constraint)을 사용한다는 것입니다.
  • 제약 조건이란 뷰가 레이아웃 안의 다른 요소와 어떻게 연결되었는지 알려주는 것으로, 뷰의 연결점(Anchor Point)과 대상(Target)을 연결합니다.
  • 다음 그림을 보면 제약 레이아웃 안에 버튼이 하나 있습니다. 이때 버튼의 입장에서 자신을 감싸고 있는 레이아웃을 부모 레이아웃(Parent Layout)이라고 부를 수 있습니다. 그리고 버튼은 위, 아래, 왼쪽, 오른쪽 각 연결점을 가지고 있으며 작은 동그라미로 표시됩니다.

  • 핸들(Side Contraints Handle)이라고 부르는 연결점은 마우스 커서로 잡아서 조절할 수 있습니다. 이 연결점이 무엇을 어떻게 할 수 있는지가 중요합니다. 여기서 적용하고 싶은 제약 조건은 '버튼의 왼쪽을 부모 레이아웃과 연결해 주세요.'입니다. 이 경우에 버튼의 왼쪽 연결점을 부모 레이아웃의 왼쪽 벽면과 연결합니다. 그러면 부모 레이아웃이 타깃(Target)이 되어 연결점과 해당 타깃이 연결됩니다. 이렇게 연결점과 타깃이 연결되면 연결선이 만들어지고 연결점은 파랗게 표시됩니다.
  • 버튼이 레이아웃 안에서 어디에 위치하고 있는지 결정하려면 적어도 왼쪽과 위쪽에 연결되어 있어야 합니다. 따라서 버튼의 위쪽 연결점과 부모 레이아웃의 위쪽 벽면을 연결하는 것까지 진행하면 버튼의 제약 조건은 완성이 됩니다. 물론 오른쪽 연결점과 아래쪽 연결점도 타깃과 연결할 수 있지만 꼭 필요한 제약조건은 두 개면 됩니다.
  • 연결선을 만들 때는 뷰의 연결점과 타깃이 필요한데, 다음과 같은 것들이 타깃이 될 수 있습니다.
    • 같은 부모 레이아웃 안에 들어 있는 다른 뷰의 연결점
    • 부모 레이아웃의 연결점
    • 가이드라인(Guideline)
  • 그리고 대상 뷰의 타깃의 연결점으로는 다음과 같은 것들이 될 수 있습니다.
    • 위쪽(Top), 아래쪽(Bottom), 왼쪽(Left), 오른쪽(Right)
    • 가로축의 가운데(CenterX), 세로축의 가운데(CenterY)
    • 베이스라인(Baseline) -> 텍스트를 보여주는 뷰인 경우에만 적용됨
  • 여기에서 왼쪽과 오른쪽은 각각 Left, Right라는 단어로 표현하기도 하고 Start, End라는 단어로 표현하기도 합니다. 이런 단어들은 나중에 XML 코드를 직접 변경할 때 필요하므로 기억하면 좋습니다. 가운데에도 넓쩍한 표시의 베이스라인 연결점이 있는데, 이것은 텍스트가 있을 경우 다른 뷰의 텍스트와 높이를 맞춰주는 역할을 합니다.

댓글