Android Programming

[Android Programming] 사용자 인터페이스 : 레이아웃

gangintheremark 2021. 10. 15. 03:14
728x90

레이아웃

  • ViewGroup 클래스로부터 상속받은 것
  • 내부에 위젯들을 담아 위치 규정

레이아웃의 종류

  • LinearLayout : 왼쪽부터 오른쪽 또는 위쪽부터 아래쪽으로 차례로 배치
  • 제약 레이아웃 : 각 위젯들은 이웃한 위젯 혹은 부모인 레이아웃과 상대적인 관계 및 거리를 이용한 위치 지정
  • 프레임레이아웃 : 위젯들을 왼쪽 위에 일률적으로 겹쳐서 배치하여 중복해서 보이는 효과

레이아웃의 주요 속성

  • orientation
    • vertical : 위젯의 배치를 수직방향으로 쌓음
    • horizontal : 위젯의 배치를 수평방향으로 쌓음
  • gravity : 레이아웃 안에 있는 위젯들을 어느쪽 방향에 배치할 것인지 결정
    • top, bottom, center ... 등
  • layout_gravity : 각각 위젯마다 어느쪽 방향에 배치할 것인지 결정
  • layout_weight : 위제이 차지하는 공간에 대한 비율
    • 리니어 레이아웃을 여러 개 사용할 경우 각 레이아웃의 크기를 지정할 때 사용
  • baselineAligned : 크기가 다른 위젯들을 보기 좋게 정렬 → true/false

제약 레이아웃 ( ConstraintLayout )

  • 제약창에 표시된 거리에 대한 정보나 다른 위젯에 대한 상대적인 위치를 이용하여 해당 위젯의 위치 결정
  • 제약조건이 있을 때 이웃된 위젯이나 제약 관련된 데이터의 이격거리 표시
  • 제약창에 나타난 위젯의 핸들
    • Resize 핸들 : 위젯의 크기를 결정하는 포인트
    • 연결점, 앵커포인트 : 위젯과 위젯 사이 상대적인 위치 제약을 만듦

Resize 핸들과 연결점

  • 제약을 만드는 방법 : 제약을 가한 연결점에서 주위의 연결 타깃점으로 드래그
  • 연결 타깃점
    • 같은 레이아웃 안에 있는 다른 위젯의 연결점
    • 부모 레이아웃의 연결점 혹은 경계선
    • 가이드 라인, 글자의 베이스라인
  • 제약에 대한 규칙
    • 연결선은 수평과 수직 방향으로 하나씩은 반드시 존재
    • 앵커 포인트에서만 제약 생성
    • 하나의 연결점은 하나의 제약만을 위해 사용
  • 자석 : 켜져있을 경우 자동으로 제약 생성
  • 가이드라인 : 위젯들의 배치를 쉽게 하기 위해 수평 혹은 수직으로 만듦

프레임 레이아웃

  • 단순히 레이아웃 내의 위젯들은 왼쪽 상단부터 겹쳐서 출력
  • 탭 위젯 등과 혼용해서 사용할 때 유용
728x90