linear layout은 view를 수평(horizontal) 혹은 수직(vertical)방향으로 배치할 수 있는 레이아웃이다. orientation 속성을 사용하여 배치 방향을 정할 수 있다.
android:orientation = "vertical": 하위 뷰들을 수직방향으로 배치android:orientation = "horizontal": 하위 뷰들을 수평방향으로 배치
Linear Layout은 android:layout_weight 속성을 사용하여 각각의 자식들에게 가중치(weight)을 할당하는것을 지원한다. 이 속성은 view가 화면에서 얼마만큼의 공간을 차지하느냐에 따라 중요도 값을 할당한다.
android:layout_weight = "1" : 1이 들어가는 위치에 큰 숫자가 들어갈 수록 가중치가 커진다. 기본 가중치(default)는 0이다.
각 하위 요소가 화면에서 동일한 크기의 공간을 사용하는 선형 레이아웃을 생성하려면, 각 view의 android:layout_height를 0dp로 설정한다(horizontal인 경우). 그런 다음 각 뷰의 android:layout_weight를 1로 설정한다.
하위 요소가 화면에 다른 크기의 공간을 사용하는 Linear Layout을 생성할 수 있다.
(예시)
3개의 text field가 있다. 그 중 2개의 가중치를 1로 선언하고, 다른 하나의 가중치는 지정하지 않을 경우, 세번째 text field는 확장되지 않는다. 다만, 세번째 text field가 필요한 영역만 차지하게 된다.(나머지 2개의 text field는 균등하게 남은 공간을 채우도록 확장된다.)
Linear Layout은 android:gravity 속성을 사용하여 모든 하위 뷰에 대한 중력 방향(배치 방향)을 결정한다. 반면 android:layout_gravity 속성은 해당 group view에 속하는 하위 view들이 가지는 속성으로, view group의 gravity속성에 의해 결정된 원래 자신 위치에서의 중력 방향(배치 방향)을 결정한다.
Linear Layout을 사용해 간단한 레이아웃을 구성해보았다.
(비균등 분포, gravity, edit text, button 사용)


android:layout_width="match_parent"
android:layout_height="wrap_content"
참고
https://developer.android.com/develop/ui/views/layout/linear?hl=en