Sự khác biệt giữa phần đệm và góc nhìn của View


566

Sự khác biệt giữa Margin và Padding của View là gì?


10
Đệm là bên trong biên giới, lề là bên ngoài. Xem mô hình Hộp W3C để biết chi tiết. Bài đăng trên blog này dễ đọc hơn nhiều, mặc dù :-)
Aaron Digulla

2
Điều này có thể hữu ích Bố cục khai báo
Sharique Abdullah

3
đây là giống như HTML, xem tại đây để biết thêm stackoverflow.com/questions/2189452/ Khăn
Scott

Xem câu trả lời của tôi về câu hỏi tương tự stackoverflow.com/questions/21959050/
Kẻ

Câu trả lời:


568

Để giúp tôi nhớ ý nghĩa của đệm , tôi nghĩ về một chiếc áo khoác lớn với nhiều miếng bông dày . Tôi ở trong áo khoác của tôi, nhưng tôi và áo khoác đệm của tôi là cùng nhau. Chúng tôi là một đơn vị.

Nhưng để nhớ lề , tôi nghĩ, " Này, cho tôi một ít lề! " Đó là khoảng trống giữa tôi và bạn. Đừng đến trong vùng thoải mái của tôi - lề của tôi.

Để làm cho nó rõ ràng hơn, đây là một hình ảnh của phần đệm và lề trong TextView:

nhập mô tả hình ảnh ở đây

Bố cục xml cho hình ảnh trên

<?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>

Liên quan


578

Đệm là không gian bên trong đường viền, giữa đường viền và nội dung của chế độ xem thực tế. Lưu ý rằng phần đệm đi hoàn toàn xung quanh nội dung: có phần đệm ở phía trên, dưới, bên phải và bên trái (có thể độc lập).

Lề là khoảng trắng bên ngoài đường viền, giữa đường viền và các yếu tố khác bên cạnh khung nhìn này. Trong ảnh, lề là vùng màu xám bên ngoài toàn bộ đối tượng. Lưu ý rằng, giống như phần đệm, lề đi hoàn toàn xung quanh nội dung: có các lề ở phía trên, dưới, bên phải và bên trái.

Một hình ảnh cho biết hơn 1000 từ (được trích xuất từ Margin Vs Padding - Thuộc tính CSS ):

văn bản thay thế


54
Câu trả lời là dành cho HTML / CSS, câu hỏi là về Android. Mô hình xem của Android được lấy cảm hứng từ HTML, nhưng không giống nhau. Đối với một điều, đường viền không phải là một đối tượng cỡ lớn hạng nhất ở đó.
Seva Alekseyev

48
LƯU Ý: Trong Android, thuộc tính layout_creen bao gồm nội dung và phần đệm. (Trong HTML, thuộc tính chiều rộng css chỉ đề cập đến chiều rộng nội dung.) Như Seva đã nói, Android không có khái niệm về đường viền. Bạn có thể sử dụng nền png 9 bản vá hoặc vectơ xml có thể vẽ để thêm đường viền trong Android.
SharkAlley

12
Cũng đáng lưu ý rằng nền được sửa đổi dựa trên lề nhưng không phải là phần đệm (trong Android.)
ArtOfWarfare

Trong Android, cái được gọi là "đường viền" ở đây, thực sự là 'thùng chứa khung nhìn'. Điều này sẽ làm rõ mọi thứ một chút tôi sẽ hy vọng.
The Hungry Androider

75

Đệm nằm bên trong View.

Ký quỹ nằm ngoài Chế độ xem.

Sự khác biệt này có thể liên quan đến thuộc tính nền hoặc kích thước.


41

Đệm là trong tầm nhìn, lề là bên ngoài. Đệm có sẵn cho tất cả các quan điểm. Tùy thuộc vào chế độ xem, có thể có hoặc không có sự khác biệt trực quan giữa phần đệm và lề.

Ví dụ, đối với các nút, hình nền của nút đặc trưng bao gồm phần đệm, nhưng không phải phần lề. Nói cách khác, việc thêm nhiều phần đệm làm cho nút trông lớn hơn, trong khi thêm phần lề chỉ làm cho khoảng cách giữa nút và điều khiển tiếp theo rộng hơn.

TextViewMặt khác, đối với s, hiệu ứng hình ảnh của phần đệm và lề là giống hệt nhau.

Có hay không có lề có được xác định bởi vùng chứa của khung nhìn, không phải bởi chính khung nhìn. Trong LinearLayoutlề được hỗ trợ, trong AbsoluteLayout(được coi là lỗi thời bây giờ) - không.



8

Đệm có nghĩa là không gian giữa widget và khung gốc widget. Nhưng lề là khoảng cách giữa khung ban đầu của widget để giới hạn khung của widget khác. nhập mô tả hình ảnh ở đây.


7

Đệm là không gian bên trong đường viền giữa đường viền và hình ảnh thực tế hoặc nội dung ô. Lề là khoảng trắng bên ngoài đường viền, giữa đường viền và các yếu tố khác bên cạnh đối tượng này.


7

Đôi khi bạn có thể đạt được kết quả tương tự bằng cách chỉ chơi với phần đệm HOẶC lề. Thí dụ :

Say View X chứa view Y (aka: View Y nằm trong View X).

-View Y với Margin = 30 HOẶC Xem X với Padding = 30 sẽ đạt được kết quả tương tự: Xem Y sẽ có độ lệch là 30.


7

Đệm
Padding là bên trong một ví dụ View.For nếu bạn cho android:paddingLeft=20dp, sau đó các mục bên trong xem sẽ sắp xếp với 20dpchiều rộng từ left.You cũng có thể sử dụng paddingRight, paddingBottom, paddingTopmà là để cung cấp cho đệm từ bên phải, phía dưới và phía trên tương ứng.

Ký quỹ Ký
quỹ nằm ngoài a View. Ví dụ: nếu bạn đưa ra android:marginLeft=20dp, thì chế độ xem sẽ được sắp xếp sau 20dptừ trái.


3

Giả sử bạn có một nút trong chế độ xem và kích thước của chế độ xem là 200 x 200 và kích thước của nút là 50 x 50 và tiêu đề nút là HT. Bây giờ, sự khác biệt giữa lề và phần đệm là, bạn có thể đặt lề của nút trong chế độ xem, ví dụ 20 từ bên trái, 20 từ trên cùng và phần đệm sẽ điều chỉnh vị trí văn bản trong nút hoặc chế độ xem văn bản, v.v. , giá trị đệm là 20 từ bên trái, vì vậy nó sẽ điều chỉnh vị trí của văn bản.


2

Margin đề cập đến không gian thêm bên ngoài của một yếu tố. Đệm liên quan đến không gian thêm trong một yếu tố. Lề là không gian thêm xung quanh điều khiển. Phần đệm là không gian thêm bên trong điều khiển.

Thật khó để thấy sự khác biệt với lề và phần đệm với phần tô màu trắng, nhưng với phần tô màu bạn có thể thấy nó ổn.


2

Ngoài tất cả các câu trả lời đúng ở trên, một điểm khác biệt nữa là phần đệm làm tăng diện tích có thể nhấp của chế độ xem, trong khi lề thì không . Điều này rất hữu ích nếu bạn có một hình ảnh nhỏ có thể nhấp nhưng muốn làm cho trình xử lý nhấp tha thứ.

Đối với ví dụ, xem hình ảnh này của bố trí của tôi với một ImageView(biểu tượng Android), nơi tôi đặt paddingBottonđược 100dp(hình ảnh là các cổ phiếu launcher mipmap ic_launcher). Với trình xử lý nhấp chuột đính kèm, tôi có thể nhấp vào bên ngoài và bên dưới hình ảnh và vẫn đăng ký một nhấp chuột.

nhập mô tả hình ảnh ở đây


Một mẹo thiết thực và hữu ích!
hải quân

2

Nói một cách đơn giản:

  1. Đệm - tạo không gian bên trong đường viền của khung nhìn.
  2. Lề - tạo không gian bên ngoài đường viền của khung nhìn.

1

Nói một cách đơn giản: phần
đệm thay đổi kích thước của hộp (với một cái gì đó).
lề thay đổi không gian giữa các hộp khác nhau

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.