뷰의 패딩과 여백의 차이점


566

뷰의 여백과 패딩의 차이점은 무엇입니까?


10
패딩이 테두리 안에 있고 여백이 밖에 있습니다. 자세한 내용은 W3C Box 모델 을 참조하십시오. 이 블로그 게시물은 훨씬 더 읽을 수있다 :-)하지만
아론 Digulla

2
이 도움이 될 수 있습니다 선언 레이아웃
Sharique 압둘라

3
이것은 HTML과 동일합니다. 자세한 내용은 여기를 참조하십시오 stackoverflow.com/questions/2189452/…
Scott

비슷한 질문에 대한 내 답변보기 stackoverflow.com/questions/21959050/…
Eugene Brusov

답변:


568

패딩 의 의미를 기억할 수 있도록 두꺼운면 패딩 이 많은 큰 코트를 생각 합니다. 나는 내 코트 안에 있지만 나와 패딩 코트는 함께 있습니다. 우리는 하나의 단위입니다.

그러나 마진 을 기억하기 위해 , " 저기, 약간의 마진을주세요! " 라고 생각합니다 . 그것은 당신과 나 사이의 빈 공간입니다. 내 안락 지대, 내 여백에 오지 마십시오.

더 명확하게하기 위해 다음은 패딩과 여백의 그림입니다 TextView.

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

위 이미지의 xml 레이아웃

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="#c5e1b0"
        android:textColor="#000000"
        android:text="TextView margin only"
        android:textSize="20sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="#f6c0c0"
        android:textColor="#000000"
        android:text="TextView margin only"
        android:textSize="20sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#c5e1b0"
        android:padding="10dp"
        android:textColor="#000000"
        android:text="TextView padding only"
        android:textSize="20sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#f6c0c0"
        android:padding="10dp"
        android:textColor="#000000"
        android:text="TextView padding only"
        android:textSize="20sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="#c5e1b0"
        android:textColor="#000000"
        android:padding="10dp"
        android:text="TextView padding and margin"
        android:textSize="20sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:background="#f6c0c0"
        android:textColor="#000000"
        android:padding="10dp"
        android:text="TextView padding and margin"
        android:textSize="20sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#c5e1b0"
        android:textColor="#000000"
        android:text="TextView no padding no margin"
        android:textSize="20sp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#f6c0c0"
        android:textColor="#000000"
        android:text="TextView no padding no margin"
        android:textSize="20sp" />

</LinearLayout>

관련


577

패딩 은 경계와 실제보기의 내용 사이의 경계 내부 공간입니다. 패딩은 내용을 완전히 둘러 쌉니다. 위쪽, 아래쪽, 오른쪽 및 왼쪽에 패딩이 있습니다 (독립적 일 수 있음).

여백 은 테두리와이 뷰 옆의 다른 요소 사이의 경계 외부 공간입니다. 이미지에서 여백은 전체 객체 외부의 회색 영역입니다. 패딩과 마찬가지로 여백은 내용 주위를 완전히 돌아갑니다. 위쪽, 아래쪽, 오른쪽 및 왼쪽에 여백이 있습니다.

이미지에 1000 개 이상의 단어가 표시됩니다 ( Margin Vs Padding-CSS 속성 에서 추출 ).

대체 텍스트


54
대답은 HTML / CSS에 대한 것이며, 안드로이드에 대한 질문이었습니다. Android의 뷰 모델은 HTML에서 영감을 얻었지만 동일하지는 않습니다. 우선 테두리는 일류 크기 조정 가능 객체가 아닙니다.
Seva Alekseyev

48
참고 : Android에서 layout_width 속성에는 내용 및 패딩이 포함됩니다. HTML에서 css width 속성은 내용 너비 만 나타냅니다. Seva가 말했듯이 Android에는 기본 제공되는 테두리 개념이 없습니다. 9 패치 png 배경 또는 xml 벡터 드로어 블을 사용하여 Android에 테두리를 추가 할 수 있습니다.
SharkAlley

12
그것은 배경은 여백 아니라 패딩에 따라 수정되는 것을 주목할 가치 (안드로이드 인치)
ArtOfWarfare

안드로이드에서 여기에서 "테두리"라고하는 것은 실제로 '뷰 컨테이너'입니다. 이것은 내가 바라는 것을 분명히해야합니다.
배고픈 안드로이드

75

패딩이 뷰 내부에 있습니다.

여백은보기 외부에 있습니다.

이 차이는 배경 또는 크기 속성과 관련이있을 수 있습니다.


41

패딩이 뷰 내에 있고 여백이 밖에 있습니다. 모든 뷰에서 패딩을 사용할 수 있습니다. 보기에 따라 패딩과 여백간에 시각적 차이가있을 수도 있고 없을 수도 있습니다.

예를 들어, 버튼의 경우, 특징적인 버튼 배경 이미지에는 여백이 아닌 패딩이 포함됩니다. 다시 말해서, 패딩을 더 추가하면 버튼이 시각적으로 더 크게 보이고, 여백을 더 추가하면 버튼과 다음 컨트롤 사이의 간격이 더 넓어집니다.

들면 TextViewS 한편, 패딩 마진의 시각적 효과는 동일하다.

여백을 사용할 수 있는지 여부는 뷰 자체가 아니라 뷰 컨테이너에 의해 결정됩니다. 에서 LinearLayout여백에, 지원 AbsoluteLayout없음 - (지금은 사용되지 않는 것으로 간주).



8

패딩은 위젯과 위젯 원래 프레임 사이의 공간을 의미합니다. 그러나 여백은 위젯의 원래 프레임과 다른 위젯의 프레임 경계 사이의 공간입니다. 여기에 이미지 설명을 입력하십시오.


7

패딩은 테두리와 실제 이미지 또는 셀 내용 사이의 테두리 내부 공간입니다. 여백은 테두리와이 개체 옆의 다른 요소 사이의 경계 외부 공간입니다.


7

패딩이나 여백만으로도 같은 결과를 얻을 수 있습니다. 예 :

View X에 View Y가 포함되어 있다고 가정하십시오 (일명 : View Y는 View X 내부에 있음).

-여백이 30 인 뷰 Y 또는 패딩이 30 인 뷰 X는 동일한 결과를 얻습니다. 뷰 Y의 오프셋은 30입니다.


7

패딩
당신이 주면 패딩이 View.For 예제의 내부에 android:paddingLeft=20dp다음 뷰 내부의 항목으로 드릴 것입니다, 20dpleft.You도 사용할 수 있습니다에서 폭 paddingRight, paddingBottom,paddingTop 각각 우측, 하단과 상단에서 패딩을주고있는.

여백
여백은 외부에 있습니다 View. 예를 들어을 주면 android:marginLeft=20dp뷰가 20dp왼쪽부터 정렬됩니다 .


3

뷰에 버튼이 있고 뷰의 크기가 200 x 200이고 버튼의 크기가 50 x 50이고 버튼 제목이 HT라고 가정 해 봅시다. 이제 여백과 패딩의 차이점은 뷰에서 버튼의 여백을 설정할 수 있습니다 (예 : 왼쪽에서 20, 상단에서 20). 패딩은 버튼 또는 텍스트보기 등의 텍스트 위치 등을 조정합니다. 패딩 값은 왼쪽에서 20이므로 텍스트의 위치가 조정됩니다.


2

여백은 요소 외부의 추가 공간을 나타냅니다. 패딩은 요소 내의 추가 공간을 나타냅니다. 여백은 컨트롤 주위의 추가 공간입니다. 패딩은 컨트롤 내부의 추가 공간입니다.

흰색 채우기로 여백과 패딩의 차이를 확인하기는 어렵지만 색상 채우기를 사용하면 잘 볼 수 있습니다.


2

위의 모든 정답 외에도 패딩 은 뷰의 클릭 가능 영역을 늘리는 반면 여백 은 그렇지 않습니다 . 클릭 할 수있는 이미지가 작지만 클릭 핸들러를 용서하려는 경우에 유용합니다.

예를 들어, 내 레이아웃이 이미지 참조 ImageView나는 설정 (안드로이드 아이콘) paddingBotton수를 100dp(이미지는 주식 런처 밉맵입니다 ic_launcher). 첨부 된 클릭 핸들러를 사용하여 이미지 바깥 쪽과 아래쪽을 클릭하고 여전히 클릭을 등록 할 수있었습니다.

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


실용적이고 유용한 팁!
navylover

2

간단히 말해서 :

  1. 패딩-뷰의 테두리 안에 공간을 만듭니다.
  2. 여백-보기 테두리 외부에 공간을 만듭니다.

1

간단히 말해서 :
패딩은 상자의 크기를 변경합니다.
여백은 다른 상자 사이의 공간을 변경합니다

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