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] 안드로이드 사전 과제 - 박지원 #47

Open
parkji1on opened this issue Feb 2, 2023 · 0 comments
Open

[2023-02-02] 안드로이드 사전 과제 - 박지원 #47

parkji1on opened this issue Feb 2, 2023 · 0 comments

Comments

@parkji1on
Copy link

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

  • 복잡한 레이아웃을 단순한 계층구조를 이용하여 표현할 수 있는 View Group이다.
  • 위치와 크기 조절을 유연하게 할 수 있다.
  • 뷰와 뷰 간의 관계가 절대적인 수치가 아닌 상대적인 비율로 지정되어 있기 때문에, 다양한 해상도에서 원하는 레이아웃 모양대로 정렬하여 나타낼 수 있다.
  • UI 설계를 쉽게 할 수 있다.
  • 다양한 화면 크기와 방향에 적응하는 반응형 UI를 쉽게 만들 수 있다.
  • 다른 Layout보다 향상된 성능을 보여준다.

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

  • Linear Layout : 가로 혹은 세로로 View를 쌓아가는 대표적으로 많이 사용되는 Layout이다
  • Relative Layout : 상대적인 위치를 지정하여 View를 배치하는 것으로 부모 뷰나 다른 뷰를 기준으로 배치를 한다.
  • Table Layout : 표와 같이 배치 할 수 있는 배열로 TableRow가 표의 열이 되고 TableRow 안에 들어가는 뷰의 수 만큼 열이 생긴다.
  • Grid Layout : Table Layout이 열만을 지정한다면 Grid Layout은 행과 열을 모두 지정하여 표와 같이 배치를 할 수 있는 Layout이다.
  • Frame Layout : 여러 뷰를 중첩할 수 있는 layout으로 여러 뷰를 중첩시킨후 보여주고 싶은 뷰만 보여주는 방식으로 사용된다.
  • Tab Layout : Tab을 선택하여 화면을 전환할 수 있게 만든 방식이다.

Constraint Layout으로 대체가 된 이유는 이전에 쓰이던 레이아웃들로 다양한 UI를 표현하려면 여러 계층의 구조로 만들다 보니 depth가 깊어져 이해 하기 힘들고 다양한 비율의 해상도로 지원하려면 같은 이름으로 여러벌의 레이아웃을 만들어야 해서 생산성과 유지보수면에서도 떨어졌다.
하지만 Constraint Layout으로 다양한 유스케이스에 대응이 되며, 단순한 계층 구조로 이해 하기 쉽고, flat한 구조를 유지한다면 뷰를 그리는 성능향상도 얻어 갈수 있다.

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