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


276

Android에서 위젯을 레이아웃 할 때 fill_parent( match_parentAPI 레벨 8 이상에서)와 wrap_content? 의 차이점은 무엇 입니까?

지적 할 수있는 문서가 있습니까? 나는 그것을 잘 이해하고 싶습니다.


33
(가) 있다는 사실을 fill_parent개명되었다 match_parentAPI 레벨 8 이상에 있습니다.
gfrigon

답변:


266

뷰의 (시각적 제어) 가로 또는 세로 크기에 특성을 적용 할 수 있습니다. 치수를 명시 적으로 지정하지 않고 내용 또는 상위 레이아웃의 크기를 기반으로보기 또는 레이아웃 크기를 설정하는 데 사용됩니다.

fill_parent( MATCH_PARENTAPI 레벨 8 이상에서는 더 이상 사용되지 않고 이름이 바 ))

위젯의 레이아웃을 fill_parent로 설정하면 위젯이 배치 된 레이아웃 요소 내에서 사용할 수있는만큼의 공간을 차지하도록 확장됩니다. 이는 Windows Form Control의 dockstyle을로 설정하는 것과 거의 같습니다 Fill.

최상위 레벨 레이아웃 또는 컨트롤을 fill_parent로 설정하면 전체 화면을 차지하게됩니다.

wrap_content

뷰의 크기를 wrap_content로 설정하면 포함 된 값 (또는 하위 컨트롤)을 포함 할 수있을 정도로만 확장됩니다. 텍스트 상자 (TextView) 또는 이미지 (ImageView)와 같은 컨트롤의 경우 표시되는 텍스트 또는 이미지를 래핑합니다. 레이아웃 요소의 경우 자식으로 추가 된 컨트롤 / 레이아웃에 맞게 레이아웃 크기를 조정합니다.

Windows Form Control의 Autosize속성을 True 로 설정하는 것과 거의 같습니다 .

온라인 문서

여기에 안드로이드 코드 문서에 몇 가지 세부 사항이 있습니다 .


12
이미지 너비가 화면 너비보다 크고 imageview 너비를 fill_parent로 설정하면 어떻게됩니까? 이미지가 화면 크기로 압축됩니까?
John Watson

@JohnWatson 답을 찾았습니까? 나도 궁금하다.
Rachael

언급 된 Windows Form Control의 동등한 속성을 아는 것이 좋습니다.
Rempelos 2018 년

@JohnWatson은 무엇입니까? 당신의 이야기는 무엇입니까? 답은 무엇입니까?
희망적으로 도움이 된

36

fill_parent(더 이상 사용되지 않음) =match_parent
자식보기의 테두리가 부모보기의 테두리와 일치하도록 확장됩니다.

wrap_content
자식 뷰의 경계는 자체 컨텐츠를 감싸고 있습니다.

보다 명확하게하기 위해 몇 가지 이미지가 있습니다. 녹색과 빨간색은 TextViews입니다. 흰색은 LinearLayout보여줍니다.

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

때때로 View(a TextView,는 ImageView, A는 Button, 등)를 설정해야 width하고 height뷰한다. xml 레이아웃 파일에서 다음과 같이 보일 수 있습니다.

android:layout_width="wrap_content"
android:layout_height="match_parent"

너비와 높이를 match_parent또는로 설정하는 것 외에도 wrap_content절대 값으로 설정할 수도 있습니다.

android:layout_width="100dp"
android:layout_height="200dp"

그러나 일반적으로 크기가 다른 장치에 비해 유연하지 않기 때문에 좋지 않습니다. 당신이 이해 wrap_content하고 match_parent나면 다음으로 배울 것은 layout_weight.

또한보십시오

위 이미지를위한 XML

수직 선형 레이아웃

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="width=wrap height=wrap"
        android:background="#c5e1b0"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="width=match height=wrap"
        android:background="#f6c0c0"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="width=match height=match"
        android:background="#c5e1b0"/>

</LinearLayout>

수평 선형 레이아웃

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="WrapWrap"
        android:background="#c5e1b0"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="WrapMatch"
        android:background="#f6c0c0"/>

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="MatchMatch"
        android:background="#c5e1b0"/>

</LinearLayout>

노트

이 답변의 설명은 여백이나 패딩 이 없다고 가정합니다 . 그러나 기본 개념은 여전히 ​​동일합니다. 보기 테두리 / 간격은 여백 또는 패딩 값으로 조정됩니다.



2

fill_parent :

fill_parent공간에서 가능한 한 많은 배치 단위 구성원을 채우기 위해 확장해야하는 구성 요소가 배치 됩니다. 이것은 Windows 컨트롤의 dockstyle 속성과 일치합니다. 상단 레이아웃 또는 컨트롤을 사용 fill_parent하면 전체 화면을 강제로 차지합니다.

wrap_content

wrap_content모든 컨텐츠를 보여주기 위해 볼 수 있도록 크기를 볼 수 있도록보기를 설정하십시오 . 텍스트 뷰 이미지 뷰 및 제어는, 예를 들면, 설정되어 wrap_content전체 내부 텍스트 및 이미지를 표시한다. 레이아웃 요소는 내용에 따라 크기를 변경합니다. 자동 크기 속성의 크기보기 wrap_content를 설정하여 대략 Windows 컨트롤을 True로 설정하십시오.

자세한 내용은 다음 링크를 확인하십시오 : http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html

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