อะไรคือความแตกต่างระหว่างมาร์จิ้นดูและแพ็ดดิ้ง
อะไรคือความแตกต่างระหว่างมาร์จิ้นดูและแพ็ดดิ้ง
คำตอบ:
จะช่วยให้ฉันจำความหมายของpaddingผมคิดว่าเสื้อขนาดใหญ่ที่มีจำนวนมากpadding ฝ้ายหนา ฉันอยู่ในเสื้อโค้ทของฉัน แต่ฉันและเสื้อโค้ทบุนวมของฉันอยู่ด้วยกัน เราเป็นหน่วย
แต่เพื่อระลึกถึงระยะขอบฉันคิดว่า " เฮ้ให้ขอบฉันหน่อยสิ! " มันเป็นพื้นที่ว่างระหว่างฉันกับคุณ อย่าเข้ามาในเขตความสะดวกสบายของฉัน - ขอบของฉัน
เพื่อให้ชัดเจนยิ่งขึ้นนี่คือรูปภาพของการขยายและระยะขอบในTextView
:
<?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>
paddingเป็นพื้นที่ภายในชายแดนระหว่างชายแดนและดูเนื้อหาของจริง โปรดทราบว่าการขยายเต็มไปรอบเนื้อหา: มีช่องว่างภายในด้านบน, ด้านล่าง, ด้านขวาและด้านซ้าย (ซึ่งอาจเป็นอิสระ)
ระยะขอบคือช่องว่างนอกเส้นขอบระหว่างเส้นขอบและองค์ประกอบอื่น ๆ ถัดจากมุมมองนี้ ในภาพระยะขอบคือพื้นที่สีเทาด้านนอกวัตถุทั้งหมด โปรดทราบว่าเช่นเดียวกับการเว้นระยะขอบจะไปรอบ ๆ เนื้อหาทั้งหมด: มีระยะขอบที่ด้านบน, ด้านล่าง, ด้านขวาและด้านซ้าย
รูปภาพบอกว่ามีมากกว่า 1,000 คำ (แยกจากMargin Vs Padding - คุณสมบัติ CSS ):
การแพ็ดดิ้งอยู่ภายในมุมมอง
มาร์จิ้นอยู่นอกมุมมอง
ความแตกต่างนี้อาจเกี่ยวข้องกับคุณสมบัติพื้นหลังหรือขนาด
การแพ็ดดิ้งอยู่ในมุมมองส่วนต่างอยู่นอก การเติมเต็มใช้ได้กับทุกมุมมอง ขึ้นอยู่กับมุมมองอาจมีหรือไม่อาจเห็นความแตกต่างระหว่าง padding และระยะขอบ
สำหรับปุ่มตัวอย่างเช่นภาพพื้นหลังของปุ่มลักษณะรวมถึงการขยาย แต่ไม่ใช่ระยะขอบ กล่าวอีกนัยหนึ่งการเพิ่มช่องว่างภายในเพิ่มเติมทำให้ปุ่มดูใหญ่ขึ้นในขณะที่การเพิ่มระยะขอบมากขึ้นจะทำให้ช่องว่างระหว่างปุ่มและตัวควบคุมถัดไปกว้างขึ้น
สำหรับTextView
s ในทางกลับกันเอฟเฟ็กต์ภาพของการขยายและขอบจะเหมือนกัน
การกำหนดระยะขอบว่ามีหรือไม่นั้นถูกกำหนดโดยคอนเทนเนอร์ของมุมมองไม่ใช่โดยมุมมองเอง ในLinearLayout
อัตรากำไรขั้นต้นได้รับการสนับสนุนในAbsoluteLayout
(ถือว่าล้าสมัยตอนนี้) - ไม่มี
ภาพด้านล่างจะช่วยให้คุณเข้าใจการขยายและระยะขอบ -
การเว้นช่องว่างเป็นช่องว่างภายในเส้นขอบระหว่างเส้นขอบและรูปภาพหรือเนื้อหาเซลล์จริง ระยะขอบคือช่องว่างนอกเส้นขอบระหว่างเส้นขอบและองค์ประกอบอื่น ๆ ถัดจากวัตถุนี้
บางครั้งคุณสามารถบรรลุผลเดียวกันโดยเล่นเฉพาะกับการขยายหรือขอบ ตัวอย่าง:
Say View X มี view Y (aka: View Y อยู่ใน View X)
-View Y ที่มี Margin = 30 หรือ View X พร้อม Padding = 30 จะได้ผลลัพธ์เหมือนกัน: View Y จะมี offset เท่ากับ 30
padding
padding ด้านในเป็นตัวอย่างที่ View.For ถ้าคุณให้android:paddingLeft=20dp
แล้วรายการที่อยู่ภายในมุมมองจะจัดให้มี20dp
ความกว้างจาก left.You ยังสามารถใช้paddingRight
, paddingBottom
, paddingTop
ที่จะให้ขยายจากขวาด้านล่างและด้านบนตามลำดับ
Margin
Margin View
อยู่นอกของ ตัวอย่างเช่นถ้าคุณให้android:marginLeft=20dp
แล้วมุมมองจะถูกจัดเรียงหลังจาก20dp
จากซ้าย
สมมติว่าคุณมีปุ่มในมุมมองและขนาดของมุมมองคือ 200 โดย 200 และขนาดของปุ่มคือ 50 คูณ 50 และชื่อปุ่มคือ HT ตอนนี้ความแตกต่างระหว่างระยะขอบและช่องว่างภายในคือคุณสามารถตั้งค่าระยะขอบของปุ่มในมุมมองเช่น 20 จากด้านซ้าย, 20 จากด้านบนและด้านนอกจะปรับตำแหน่งข้อความในปุ่มหรือมุมมองข้อความเป็นต้นเช่น ค่า padding คือ 20 จากด้านซ้ายดังนั้นมันจะปรับตำแหน่งของข้อความ
มาร์จิ้นหมายถึงพื้นที่พิเศษด้านนอกขององค์ประกอบ Padding หมายถึงพื้นที่พิเศษภายในองค์ประกอบ ระยะขอบเป็นพื้นที่พิเศษรอบตัวควบคุม ช่องว่างภายในเป็นพื้นที่พิเศษภายในตัวควบคุม
เป็นการยากที่จะเห็นความแตกต่างกับระยะขอบและช่องว่างภายในด้วยการเติมสีขาว แต่ด้วยการเติมสีคุณสามารถดูได้ดี
นอกจากนี้ทุกคำตอบที่ถูกต้องด้านบนซึ่งเป็นหนึ่งในความแตกต่างอื่น ๆ ที่ขยายเพิ่มขึ้นของพื้นที่ที่สามารถคลิกของมุมมองในขณะที่อัตรากำไรขั้นต้นไม่ได้ สิ่งนี้มีประโยชน์หากคุณมีภาพเล็ก ๆ ที่คลิกได้ แต่ต้องการให้ตัวจัดการการคลิกให้อภัย
ตัวอย่างเช่นดูรูปภาพของเลย์เอาต์ของฉันด้วยImageView
(ไอคอน Android) ที่ฉันตั้งค่าpaddingBotton
เป็น100dp
(ภาพคือ mipmap ตัวเรียกใช้งานหุ้นic_launcher
) ด้วยตัวจัดการการคลิกที่แนบมาฉันสามารถคลิกทางด้านนอกและด้านล่างของภาพและยังคงลงทะเบียนคลิก
ในคำง่าย ๆ :
คำง่ายๆ: การ
เติมเต็มเปลี่ยนขนาดของกล่อง (ด้วยบางอย่าง)
ระยะขอบเปลี่ยนช่องว่างระหว่างกล่องที่แตกต่างกัน