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-02] 안드로이드 사전 과제 - 홍유준 #57

Open
Kick-snare opened this issue Feb 3, 2023 · 0 comments
Open

[2023-02-02] 안드로이드 사전 과제 - 홍유준 #57

Kick-snare opened this issue Feb 3, 2023 · 0 comments

Comments

@Kick-snare
Copy link

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

ConstraintLayout은 위치와 크기 조절을 유연하게 할 수 있는 ViewGroup이다.
복잡한 계층 구조로 레이아웃을 구성하는 방식에서 자유로워질 수 있기 때문에 다양한 해상도를 지원하는 앱 작업을 할 때 편리하다.
RelativeLayout에서 불가능했던 자식 뷰간의 상호관계 정의가 가능하며 LinearLayout을 써야만 했던 뷰 비율 조정도 간단하게 가능하다.
뷰 계층을 간단하게 구성하여 유지보수, 성능 향상할 수 있으며 제공되는 Layout Editor를 이용하여 드래그 앤 드롭으로 UI를 쉽게 그릴 수 있다.

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

레이아웃은 다양한 종류가 있는데, 개발하려는 페이지 레이아웃의 상황에 맞는 레이아웃을 선택하여 사용한다.

  • LinearLayout은 가로 혹은 세로로 순차적으로 쌓아나가는 레이아웃으로 대표적으로 많이 사용한다.
  • RelativeLayout은 상대적으로 위치를 지정해주는 레이아웃으로 부모 View인 RelativeLayout을 기준으로 위치를 지정하
    거나 또 다른 자식 View의 위치를 기준으로 위치를 지정해 줄 수 있다.
  • ConstraintLayout은 자식 View들에 제약을 주어 부모View 기준으로 위치를 지정하거나 다른View를 기준으로 위치를
    지정할 수 있고, 각 View의 크기를 유연하게 지정할 수 있는 레이아웃이다.
  • TableLayout은 이름 그대로 View들을 표처럼 배치할 수 있는 레이아웃이다.
  • GridLayout은 TableLayout의 좀 더 발전된 형태로 TableLayout과 LinearLayout이 합쳐진 레이아웃이다.
  • FrameLayout은 한가지의 View를 보여줄 때 사용된다.

ConstraintLayout으로 대체된 이유

다양한 비율과 해상도를 지원하는 반응형 UI로 만들 수 있다.
일반적으로 평평한 View 계층이다. -> (View 계층이 깊어(depth)지는 경우가 적다)
View를 원하는 위치 어디든 위치시킬 수 있고 에디터가 제약조건을 추가하는 것을 도와준다.
복잡한 레이아웃의 경우 ConstraintLayout을 사용하는 것이 유리하다.

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