match_parent와 fill_parent의 차이점은 무엇입니까?


답변:


1235

그들은 같은 것입니다 (API 레벨 8 이상). 사용하십시오 match_parent.

FILL_PARENT (API 레벨 8 이상에서 MATCH_PARENT로 이름이 바,)는 뷰가 부모만큼 커지기를 원함을 나타냅니다 (빼기 패딩).

...

fill_parent:보기는 부모만큼 커야합니다 (빼기 패딩). 이 상수는 API 레벨 8부터 더 이상 사용되지 않으며로 대체됩니다 match_parent.

http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html


5
1.6과 2.2 모두를 위해 앱을 작성하면 호환성을 위해 fill_parent를 사용합니다. 맞습니까?
emeraldhieu

12
몇 가지 차이점이 있습니까? 그렇지 않으면 Google에서 더 이상 사용하지 않고 새 이름을 바꾸는 이유는 무엇입니까?
stuckedoverflow

49
@Halim 아니요, 차이점은 없습니다 . 둘 다 상수로 정의됩니다 -1. 나는 당신이 더 나은에 대한 느낌, 나는 :-) ... 그 중 하나의 impovement을하지 않습니다
arpy

2
@jlovison 아니오, 차이점은 없습니다. 둘 다입니다 -1. 이전 플랫폼은 동일한 상수의 새 이름을 알지 못하므로 오류가 발생합니다.
Tapirboy 2019 년

16
Android Studio가 여전히 모든 기본 템플릿 생성 레이아웃에 "fill_parent"를 넣는 것은 너무 이상합니다! 나는 그들이 같은 것을 알고 있지만, 나는이 SO 질문에 매년 다시 와서 아무도 실제로 차이가 있음을 발견하지 못하도록합니다. Google / Android 팀이 기본값을 "fill_parent"에서 "match_parent"로 변경할 수 있습니까? 미리 감사드립니다! :)
swooby

246

Google은 혼동을 피하기 위해 이름을 변경했습니다.

이전 이름의 문제 fill parent는 그것이 부모의 치수에 영향을 미치는 것을 암시하고 match parent결과 행동 을 더 잘 설명합니다-치수를 부모와 일치시킵니다.

두 상수 -1는 결국 해결 되므로 앱에서 동일한 동작이 발생합니다. 아이러니하게도 사물을 명확히하기 위해 만들어진이 이름 변경은 혼란을 없애기보다는 혼란을 더한 것으로 보입니다.


17
... width = match_parent를 가진 RelativeLayout의 자식을 제외하고 다른 것의 left를 제외하고. 부모의 치수와 일치하지 않고 남아있는 것을 채 웁니다. 그것은 단지 혼란을 야기하는 역할을합니다.
kaay

7
FILL_PARENT 및 MATCH_PARENT는 뷰가 부모만큼 커지기를 원한다는 것을 의미하므로 부모의 패딩을 빼면 외부 공간이 아닌 내부 공간이 아닌가? 더 혼란 스러워요!
Caltor

그들은에서 구글 문서에 동의하지 않는 한 @bnieland 나는 내부 및 외부 치수에 대한 참조를 제거했습니다 developer.android.com/reference/android/view/... 나는에서 유사한 (근거없는) 견적을 볼 수 있지만 sevennet.org / 2014 / 11 / 22 /… 정보를 얻을 수있는 곳입니다.
Caltor

28

기능상의 차이는 없었지만 Google은 이름을 fill_parent에서 match_parent, API 레벨 8 (Android 2.2)에서 변경했습니다. 호환성 이유로 FILL_PARENT을 (를) 계속 사용할 수 있습니다.

LayoutParams.FILL_PARENTLayoutParams.MATCH_PARENT모두 -1 값을 갖는다. 구글이 부모를 채우는 것으로 바꾸려는 유혹이 무엇인지 모르겠습니다 :)

대부분의 phones are >= Android 2.2.. 이후에 호환성을 위해 Match Parent를 사용해야합니다. 이전 Fill Parent 상수가 언제 중단되는지 확실하지 않습니다!


11

호환성을 위해, 예를 들어 API 8 장치 이하를 지원할 때 fill_parent를 고수하는 것이 좋습니다. 그러나 앱이 API 8 이상을 대상으로하는 경우 match_parent를 대신 사용해야합니다.


8
역 호환성 만 있습니다. FILL_PARENT더 이상 사용되지 않으면 (위의 Matt Ball에서 언급 한 바와 같이) 호환성을위한 유일한 옵션은 MATCH_PARENT입니다.

2
동의하지만 API 수준이 낮은 장치에 대한 코드를 작성하려는 경우 (예 : 2.3,2.2,2.1) FILL_PARENT를 사용해야합니다. 이전 버전에서 match_parent를 사용하는 데 문제가있었습니다.
MSA

이 답변을 삭제할 차례입니다. 더 이상 관련이 없으며 새로운 개발자에게 잘못된 조언을 줄 수 있습니다.
Tim

8

FILL_PARENTAPI 레벨 8에서 더 이상 사용되지 않으며 더 높은 레벨의 MATCH_PARENTAPI를 사용합니다.


8

match_parentfill_parent 대신 사용되며 부모가가는 한 설정합니다. match_parent를 사용 하고 fill_parent는 잊어 버려요 . 나는 fill_parent를 완전히 버리고 평소와 같이 모든 것이 완벽합니다.

자세한 내용은 여기 를 확인 하십시오 .


6

그냥 실제 행동에 더 가까운 이름을 부여하십시오 . "fill_parent"이름에서 알 수 있듯이 나머지 공간을 채우지 않습니다 (가중 속성을 사용하기 위해). 대신 레이아웃 부모만큼 많은 공간을 차지합니다. 그래서 새로운 이름은"match_parent"


2
나는 사람들이 이것을 말할 때 논리를 이해하지 못한다. 부모님은 패딩이 있습니다. 아니면 아이가 남았습니다. 아이가 일치합니까? 아니요. 남은 공간을 채우고 있습니까? 여기 Bizzarro World가 무엇인지에, 우리는 대답합니다 : 그렇습니다.
kaay

1
@ kaay 나는 새로운 이름이 이전 이름보다 나쁘다는 것에 완전히 동의합니다. 그러나 구글의 말은 간다.
Caltor

6

둘 다 유사한 기능 만 있습니다. fill_parent는 API 레벨 8까지 사용되고 match_parent는 API 레벨 8 이상 후에 사용됩니다.


6

당신이 레이아웃을 설정하는 경우 widthheight 같이 match_parentXML재산은 부모 뷰가 가지고있는 전체 영역을 차지합니다, 즉, 그것은 부모로서 큰대로 될 것입니다.

<LinearLayout
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="#f9b0b0">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#b0f9dc"/>

</LinearLayout>

토끼 부모는 빨간색이고 아이는 녹색입니다. 어린이는 모든 지역을 차지합니다. 왜냐하면 widthand height 입니다 match_parent.

여기에 이미지 설명을 입력하십시오

참고 : 부모가 패딩을 적용하면 해당 공간이 포함되지 않습니다.

<LinearLayout
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:background="#f9b0b0"
    android:paddingTop="20dp"
    android:paddingBottom="10dp">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#b0f9dc"/>

</LinearLayout>

여기에 이미지 설명을 입력하십시오

따라서 TextView hight = 300dp (parent hight)-(20 (paddingTop) +10 (paddingBottom)) = (300-30) dp = 270 dp

fill_parent 대 match_parent

fill_parent 의 이전 이름입니다 match_parent

API 레벨 8 이상 fill_parent으로 개명 match_parent하고 fill_parent지금은 사용되지 않습니다.

그래서 fill_parentmatch_parent동일합니다.

fill_parent에 대한 API 설명서

뷰는 부모 (마이너스 패딩)만큼 커야합니다. 이 상수는 API 레벨 8부터 더 이상 사용되지 않으며 {@code match_parent}로 대체됩니다.


4

match_parent-뷰가 부모만큼 큼을 원함을 나타냅니다 (빼기 패딩).

wrap_content는 뷰가 내용을 포함 할만큼 충분히 커야 함을 의미합니다 (패딩 포함).

더 나은 설명을 위해이 개념을 보여주는 샘플 레이아웃을 만들었습니다. 효과를 확인하기 위해 각 textView 내용의 테두리를 추가했습니다.

"부모 일치"textView 내용에서 레이아웃 너비가 부모 전체 길이에서 펼쳐지는 것을 볼 수 있습니다.

그러나 "내용 감싸기"textView 내용에서 볼 수 있습니다. 그것은 내용의 길이 (랩 내용) 길이에 싸여있는 레이아웃 너비입니다.

안드로이드 레이아웃


4

match_parentfill_parent 수평 또는 수직 전체 화면 뷰의 폭이나 높이를 정의하는 데 사용되는 동일한 특성이다.

이러한 속성은 이와 같은 Android xml 파일에서 사용됩니다.

 android:layout_width="match_parent"
 android:layout_height="fill_parent"

또는

 android:layout_width="fill_parent"
 android:layout_height="match_parent"

fill_parent이전 버전에서 사용되었지만 이제는 더 이상 사용되지 않으며로 대체되었습니다 match_parent. 도움이 되길 바랍니다.


3

fill_parent : 뷰는 부모만큼 커야합니다.

이제이 컨텐츠 fill_parent는 더 이상 사용되지 않으며 match_parent로 대체됩니다.


3

나에게 부모를 기입 하고 부모 일치 수행에게 동일한 기능 해당를 :

부모 채우기 : API 8 이전에 사용되었습니다

부모 일치 이것은 API 8+에서 사용되었습니다. 둘 다의 함수 패딩을 제외하고 부모보기를 채 웁니다.


2

API 레벨 8 이상에서 FILL_PARENT의 이름이 MATCH_PARENT (으)로 변경되었습니다. 즉, 뷰가 부모 (마이너스 패딩)만큼 커야합니다.-Google


2

FILL_PARENT API 레벨 8 이상에서 더 이상 사용되지 않으며 상위 버전의 이름이 다음과 같이 변경됩니다. MATCH_PARENT

둘 다 동일 FILL_PARENT하며 MATCH_PARENT, FILL_PARENTAPI 레벨 8보다 낮은 하위 버전에서 사용되었고 MATCH_PATENT는 8보다 큰 API 레벨에서 사용되었습니다.

FILL_PARENT( MATCH_PARENTAPI 레벨 8 이상으로 이름 변경 ),보기가 부모만큼 커지기를 원함을 의미합니다 (빼기 패딩)

fill_parent:보기는 부모만큼 커야합니다 (빼기 패딩). 이 상수는 API 레벨 8부터 더 이상 사용되지 않으며로 대체됩니다 match_parent.

자세한 내용은 페이지 를 방문 하십시오


0

1. match_parent

레이아웃 너비와 높이를 match_parent로 설정하면 부모보기가 가진 전체 영역을 차지합니다. 즉 부모만큼 큽니다.

참고 : 부모가 패딩을 적용하면 해당 공간이 포함되지 않습니다.

기본적으로 layout.xml을 만들면 android : layout_width = "match_parent"및 android : layout_height = "match_parent"가있는 기본 부모보기로 RelativeLayout이 있습니다. 즉, 모바일 화면의 전체 너비와 높이를 차지합니다.

또한 패딩은 모든면에 적용되며

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"

이제 서브 뷰 LinearLayout을 추가하고 layout_width = "match_parent"및 layout_height = "match_parent"를 설정하면 그래픽 뷰는 다음과 같이 표시됩니다.

match_parent_example

암호

xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.code2care.android.togglebuttonexample.MainActivity" >

android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="11dp"
android:background="#FFFFEE"
android:orientation="vertical" >

2. fill_parent :

이것은 match_parent와 동일하며 fill_parent는 API 레벨 8에서 감가 상각되었습니다. 따라서 API 레벨 8 이상을 사용하는 경우 fill_parent를 사용하지 않아야합니다.

match_parent와 동일한 단계를 따르고 대신 어디서나 fill_parent를 사용하십시오.

fill_parent와 match parent 모두에서 동작에 차이가 없음을 알 수 있습니다.

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