Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[2023-02-01] 안드로이드 사전 과제 - 오동주 #43

Open
cureasher opened this issue Feb 1, 2023 · 0 comments
Open

[2023-02-01] 안드로이드 사전 과제 - 오동주 #43

cureasher opened this issue Feb 1, 2023 · 0 comments

Comments

@cureasher
Copy link

1. ConstraintLayout의 주요 특징을 학습하고 정리해주세요.

답변을 입력해주세요.

  • 모든 뷰에는 가로와 세로 하나씩 두 개 이상의 제약조건이 필요합니다.
  • 뷰 간의 관계를 정의할 수 있어, 일정한 거리와 크기를 유지할 수 있습니다.
  • 같은 방향의 뷰들은 Chain으로 연결하거나 높이와 폭 조절이 가능합니다.
  • Chain의 유형(Spread, Spread Inside, Weighted Chain, Packed Chain, Packed Chain with Bias)
  • baseline을 통해 하나의 뷰를 기준선으로 지정 할 수 있습니다.
  • weight을 통해 뷰 배치를 비율을 지정이 가능합니다.(디바이스별 화면이 다르지만 xml상 디바이스별 비율을 통해 조절)
  • Guidelines을 만들어서 안내선으로 쓰거나 경계선으로도 사용 할 수 있습니다.

2. XML에서 활용할 수 있는 Layout은 LinearLayout, RelativeLayout 등 여러 종류가 있습니다. Layout을 선택하는 기준과 현재는 ConstraintLayout으로 대체가 된 이유를 함께 설명해주세요.

답변을 입력해주세요.
레이아웃을 선택하는 기준으로는 다음과 같은 것이 있습니다.

  • 구조의 복잡성: 레이아웃의 복잡성에 따라 적합한 레이아웃을 선택이 가능합니다.
  • 부모뷰나 자식뷰간의 상대적인 관계를 통해 화면을 그릴 경우 RelativeLayout을 사용할 수 있습니다.
  • 수직이나 수평으로 뷰를 만들 때 LinearLayout을 사용하는 것이 유리합니다.
    또한 비율을 지정하면서 레이아웃을 그릴 수 있습니다.

ConstraintLayout으로 대체가 된 이유는 다음과 같습니다.

  • LinearLayout의 가중치의 장점과 RelativeLayout의 상대적인 위치 관계가 합쳐진 레이아웃으로 ConstraintLayout을 사용하면 Depth를 줄여가면서 최적화된 레이아웃을 만들 수 있습니다.
  • 높은 성능과 최적화 된 레이아웃 구성 기능을 제공합니다.
  • 뷰 간의 관계를 쉽게 정의할 수 있어, 레이아웃을 구성하는 과정이 단순화됩니다.
  • 레이아웃을 구성하는 코드 양이 줄어들어 가독성이 높아집니다.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant