LinearLayout, RelativeLayout 및 AbsoluteLayout의 차이점은 무엇입니까?


답변:


213

LinearLayout 즉, 뷰를 하나씩 (수직 / 수평) 정렬 할 수 있습니다.

RelativeLayout 부모의 견해와 다른 견해의 관계에 근거한 수단.

ConstraintLayout RelativeLayout과 비슷하지만 관계를 사용하여 위젯을 배치하고 크기를 조정할 수 있지만 추가 유연성이 있으며 레이아웃 편집기에서 사용하기가 쉽습니다.

WebView HTML, 정적 또는 동적 페이지를로드합니다.

FrameLayout 프레임 내부의 카드와 같이 자식을 다른 프레임 위에로드하기 위해 다른 프레임 위에 또는 프레임 내부 어디에나 배치 할 수 있습니다.

더 이상 사용되지 않음- AbsoluteLayout 보기의 위치를 ​​정확하게 지정해야합니다.

자세한 내용은이 주소를 확인하십시오 https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts


2
이 링크도 확인하십시오 친구 .. mobiforge.com/designing/story/…
Ganapathy C

2
AbsoluteLayout은 더 이상 사용되지 않습니다!
Fry

3
@ 튀김 나는 2 년 전에 이것을 대답했습니다. 질문을 읽으십시오.
Ganapathy C

AbsoluteLayout이유 때문에 분명히 사용되지 않습니다. 내용이 맞지 않으면 무작위로 물건을 던집니다. a LinearLayout및 모든 패딩을로 설정 하는 것이 좋습니다 0.
EpicPandaForce

50

정의 :

  • 프레임 레이아웃 : 화면의 영역을 차단하여 단일 항목을 표시하도록 설계되었습니다.
  • 선형 레이아웃 : 자식을 단일 열 또는 단일 행으로 배열하는 레이아웃입니다.
  • 상대 레이아웃 :이 레이아웃은 하위 뷰를 상대 위치에 표시하는 뷰 그룹입니다.
  • 테이블 레이아웃 : 자식을 행과 열로 배열하는 레이아웃입니다.

추가 정보:

FrameLayout

FrameLayout은 화면에서 영역을 차단하여 단일 항목을 표시하도록 설계되었습니다. 일반적으로 FrameLayout은 단일 하위 뷰를 유지하는 데 사용해야합니다. 하위 뷰가 서로 겹치지 않으면 서 다른 화면 크기로 확장 가능한 방식으로 하위 뷰를 구성하기가 어려울 수 있기 때문입니다. 그러나 android:layout_gravity속성을 사용하여 여러 자식을 FrameLayout에 추가하고 각 자식에 중력을 할당하여 FrameLayout 내 위치를 제어 할 수 있습니다 .

자식 뷰는 스택에 그려지며 가장 최근에 추가 된 자식이 맨 위에옵니다. FrameLayout의 크기는 표시되거나 표시되지 않는 가장 큰 자식 크기 (패딩)의 크기입니다 (FrameLayout의 부모가 허용하는 경우).

RelativeLayout

RelativeLayout은 중첩 된 뷰 그룹을 제거하고 레이아웃 계층 구조를 평평하게 유지하여 성능을 향상시킬 수 있기 때문에 사용자 인터페이스를 설계하는 데 매우 유용한 유틸리티입니다. 여러 개의 중첩 된 LinearLayout 그룹을 사용하는 경우 단일 RelativeLayout으로 바꿀 수 있습니다.

(현재 문서는 여기 )

TableLayout

TableLayout은 TableRow각각 하나의 행을 정의 하는 여러 개체 로 구성됩니다 (실제로 다른 자식을 가질 수 있음). TableLayout 컨테이너에는 행, 열 또는 셀의 경계선이 표시되지 않습니다. 각 행에는 0 개 이상의 셀이 있습니다. 각 셀은 하나의 View 객체를 보유 할 수 있습니다. 테이블에는 셀 수가 가장 많은 행만큼 열이 있습니다. 테이블은 셀을 비워 둘 수 있습니다. 셀은 HTML에서와 같이 열에 걸쳐있을 수 있습니다.

열 너비는 해당 열에서 가장 넓은 셀이있는 행으로 정의됩니다.


참고 : 절대 레이아웃은 더 이상 사용되지 않습니다.


4

LinearLayout : 자식을 단일 가로 또는 세로 행으로 구성하는 레이아웃입니다. 창의 길이가 화면의 길이를 초과하면 스크롤 막대가 만들어지며 뷰를 하나씩 (수직 / 수평) 정렬 할 수 있습니다.

RelativeLayout : 자식 개체의 위치를 ​​서로 (자식 B의 왼쪽에있는 자식 A) 또는 부모 (자식 상단에 정렬)로 지정할 수 있습니다. 그것은 부모의 견해와 다른 견해의 관계에 근거합니다.

WebView : HTML, 정적 또는 동적 페이지를로드합니다.

자세한 내용은 다음 링크를 참조하십시오. http://developer.android.com/guide/topics/ui/layout-objects.html


4

LinearLayout -LinearLayout에서보기는 세로 또는 가로 방향으로 구성됩니다.

RelativeLayout -RelativeLayout은 LinearLayout보다 훨씬 복잡하므로 훨씬 더 많은 기능을 제공합니다. 이름에서 알 수 있듯이 서로를 기준으로 뷰가 배치됩니다.

FrameLayout- 단일 객체로 작동하며 하위 뷰가 서로 겹칩니다. FrameLayout은 가장 큰 자식 요소에 따라 크기를 갖습니다.

코디네이터 레이아웃 -Android 지원 라이브러리에 도입 된 가장 강력한 ViewGroup입니다. FrameLayout처럼 작동하며 플로팅 버튼 및 스낵바, 스크롤 가능한 뷰가있는 툴바와 같은 자식 뷰 사이에서 조정할 수있는 많은 기능이 있습니다.


2

여기에 대한 훌륭한 설명 :
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android

LinearLayout 은 요소를 가로 또는 세로로 나란히 정렬합니다.

RelativeLayout 을 사용하면 특정 규칙에 따라 UI 요소를 정렬 할 수 있습니다. 다음과 같은 규칙을 지정할 수 있습니다 : 이것을 부모의 왼쪽 가장자리에 맞추고,이 요소의 왼쪽 / 오른쪽에 배치하십시오.

AbsoluteLayout 은 절대 위치 지정을위한 것입니다. 즉, 뷰가 이동해야하는 정확한 좌표를 지정할 수 있습니다.

FrameLayout을 사용하면 Z 축을 따라 뷰를 배치 할 수 있습니다. 즉, 뷰 요소를 서로 겹쳐서 쌓을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.