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] 안드로이드 사전 과제 - 이준경 #48

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

[2023-02-02] 안드로이드 사전 과제 - 이준경 #48

ghost opened this issue Feb 2, 2023 · 0 comments

Comments

@ghost
Copy link

ghost commented Feb 2, 2023

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

복잡한 레이아웃을 단순한 계층 구조를 이용하여 표현할 수 있는 ViewGroup이다.
반응형 레이아웃으로, 뷰 위젯의 위치와 크기를 유연하게 조절할 수 있게 만들어준다.

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

  • LinearLayout
    여러 View 위젯들을 가로/세로 방향으로 나열할 때 사용하는 Layout이다. orientation 속성을 가지고 있어 가로(Horizontal), 세로(Vertical)을 설정할 수 있다. 자식들은 중첩되지 않고 지정한 방향으로 쌓이는 형태로 표시된다. weight 속성으로 가중치를 설정할 수 있다. 비율로 나타낼 수 있다. 다양한 디바이스 화면에 dp가 아니라 비율에 따른 대응으론 좋다.

  • RelativeLayout
    자식 View 위젯들이 서로 간의 상대적 배치 관계에 따라 화면에 표시될 위치가 결정되도록 만들어주는 Layout 클래스이다. 상대적인 배치 기준을 정하지 않는다면, 내부에서 중첩되어 표시된다. 특정 위젯을 기준으로 배치하게 된다. 아무런 조작을 하지 않았을 때는 왼쪽 상단부터 위젯이 쌓이게 된다.

  • ConstraintLayout
    LinearLayout,RelativeLayout처럼 복잡한 계층구조로 레이아웃을 구성하는 방식에서 자유로워질 수 있다. View들과 관계를 정의해서 레이아웃을 구성한다는 점이 RelativeLayout과 비슷하지만, 보다 유연하고 다양한 기능을 제공한다. RelativeLayout의 상대적 위치 관계에 따른 배치 + LinearLayout의 가중치가 가진 장점 + chain 사용을 다른 레이아웃 없이 요소들을 그룹화한다. 수평적인 구조로 인해 ConstraintLayout는 성능향상을 얻을 수 있다. ConstraintLayout은 레이아웃에 배치되는 뷰들에 여러 제약을 적용하여 각 뷰의 위치와 크기를 결정한다.
    이러한 장점들이 있어 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

0 participants