ฉันสับสนเกี่ยวกับความแตกต่างระหว่าง LinearLayout, RelativeLayout และ AbsoluteLayout ใครช่วยกรุณาบอกความแตกต่างที่แน่นอนระหว่างพวกเขา
ฉันสับสนเกี่ยวกับความแตกต่างระหว่าง LinearLayout, RelativeLayout และ AbsoluteLayout ใครช่วยกรุณาบอกความแตกต่างที่แน่นอนระหว่างพวกเขา
คำตอบ:
LinearLayout
หมายความว่าคุณสามารถจัดมุมมองทีละหนึ่ง (แนวตั้ง / แนวนอน)
RelativeLayout
หมายถึงความสัมพันธ์ของมุมมองจากผู้ปกครองและมุมมองอื่น ๆ
ConstraintLayout
คล้ายกับ RelativeLayout ซึ่งใช้ความสัมพันธ์กับวิดเจ็ตตำแหน่งและขนาด แต่มีความยืดหยุ่นเพิ่มเติมและใช้งานได้ง่ายขึ้นใน Layout Editor
WebView
เพื่อโหลดหน้า html, สแตติกหรือไดนามิก
FrameLayout
เมื่อต้องการโหลดเด็กด้านบนอีกคนหนึ่งเช่นการ์ดภายในกรอบเราสามารถวางเด็กด้านบนอีกคนหนึ่งหรือที่ใดก็ได้ภายในกรอบ
เลิกใช้แล้ว - AbsoluteLayout
หมายถึงคุณต้องให้ตำแหน่งที่แน่นอนที่ควรมีมุมมอง
สำหรับข้อมูลเพิ่มเติมโปรดตรวจสอบที่อยู่นี้https://developer.android.com/guide/topics/ui/declaring-layout#CommonLayouts
AbsoluteLayout
ถูกปฏิเสธด้วยเหตุผล; หากเนื้อหาไม่เหมาะสมก็จะส่งแบบสุ่ม คุณจะดีกว่าด้วยLinearLayout
และการตั้งค่าทั้งหมดของ paddings 0
ในการ
FrameLayout ถูกออกแบบมาเพื่อบล็อกพื้นที่บนหน้าจอเพื่อแสดงรายการเดียว โดยทั่วไปแล้ว FrameLayout ควรใช้เพื่อเก็บมุมมองลูกเดียวเพราะมันอาจเป็นเรื่องยากที่จะจัดระเบียบมุมมองเด็กในวิธีที่ปรับขนาดได้ตามขนาดหน้าจอที่แตกต่างกันโดยที่เด็กไม่ทับซ้อนกัน อย่างไรก็ตามคุณสามารถเพิ่มเด็ก ๆ หลาย ๆ คนลงใน FrameLayout และควบคุมตำแหน่งของพวกเขาภายใน FrameLayout โดยกำหนดแรงโน้มถ่วงให้กับเด็กแต่ละคนโดยใช้
android:layout_gravity
คุณลักษณะมุมมองชายด์จะถูกวาดในสแต็กโดยมีชายด์ที่เพิ่มล่าสุดอยู่ด้านบน ขนาดของ FrameLayout คือขนาดของลูกที่ใหญ่ที่สุด (บวกการขยาย) มองเห็นได้หรือไม่ (ถ้าพาเรนต์ของ FrameLayout อนุญาต)
RelativeLayout เป็นเครื่องมือที่ทรงพลังมากสำหรับการออกแบบส่วนต่อประสานผู้ใช้เพราะมันสามารถกำจัดกลุ่มมุมมองที่ซ้อนกันและทำให้ลำดับชั้นโครงร่างของคุณแบนซึ่งช่วยปรับปรุงประสิทธิภาพ หากคุณพบว่าตัวเองใช้กลุ่ม LinearLayout ซ้อนกันหลายกลุ่มคุณอาจสามารถแทนที่พวกเขาด้วย RelativeLayout กลุ่มเดียว
(เอกสารปัจจุบันที่นี่ )
TableLayout ประกอบด้วย
TableRow
วัตถุจำนวนหนึ่งโดยแต่ละอันจะกำหนดแถว (ที่จริงแล้วคุณสามารถมีลูกคนอื่นซึ่งจะอธิบายด้านล่าง) TableLayout คอนเทนเนอร์ไม่แสดงเส้นขอบสำหรับแถวคอลัมน์หรือเซลล์ แต่ละแถวมีศูนย์หรือมากกว่าเซลล์ แต่ละเซลล์สามารถเก็บวัตถุมุมมองหนึ่งรายการ ตารางมีคอลัมน์ได้มากเท่ากับแถวที่มีเซลล์มากที่สุด ตารางสามารถปล่อยเซลล์ให้ว่างได้ เซลล์สามารถขยายคอลัมน์ได้เช่นเดียวกับใน HTMLความกว้างของคอลัมน์ถูกกำหนดโดยแถวที่มีเซลล์กว้างที่สุดในคอลัมน์นั้น
หมายเหตุ : รูปแบบแอบโซลูทจะเลิกใช้
LinearLayout:เลย์เอาต์ที่จัดระเบียบลูก ๆ ให้เป็นแถวแนวนอนหรือแนวตั้ง มันสร้างแถบเลื่อนถ้าความยาวของหน้าต่างเกินความยาวของหน้าจอมันหมายความว่าคุณสามารถจัดมุมมองทีละคน (แนวตั้ง / แนวนอน)
RelativeLayout:สิ่งนี้ช่วยให้คุณสามารถระบุตำแหน่งของวัตถุลูกที่สัมพันธ์กัน (ลูก A ทางด้านซ้ายของเด็ก B) หรือไปยังผู้ปกครอง (ชิดกับด้านบนของผู้ปกครอง) มันขึ้นอยู่กับความสัมพันธ์ของมุมมองจากผู้ปกครองและมุมมองอื่น ๆ
WebView:เพื่อโหลดหน้า html, สแตติกหรือไดนามิก
สำหรับข้อมูลเพิ่มเติมอ้างอิงลิงค์นี้: http://developer.android.com/guide/topics/ui/layout-objects.html
LinearLayout - ใน LinearLayout มุมมองจะถูกจัดระเบียบทั้งในแนวตั้งหรือแนวนอน
RelativeLayout - RelativeLayout เป็นวิธีที่ซับซ้อนกว่า LinearLayout ดังนั้นจึงมีฟังก์ชันการทำงานที่มากขึ้น มุมมองถูกวางไว้ตามชื่อที่แนะนำซึ่งสัมพันธ์กัน
FrameLayout - มันทำงานเป็นวัตถุเดียวและมุมมองลูกของมันจะซ้อนทับกัน FrameLayout ใช้ขนาดตามองค์ประกอบลูกที่ใหญ่ที่สุด
เค้าโครงผู้ประสานงาน - นี่คือ ViewGroup ที่ทรงพลังที่สุดที่เปิดตัวในห้องสมุดสนับสนุน Android มันทำงานเป็น FrameLayout และมีฟังก์ชั่นมากมายในการประสานงานระหว่างมุมมองลูกเช่นปุ่มลอยและสแน็คบาร์แถบเครื่องมือที่มีมุมมองที่เลื่อนได้
คำอธิบายที่ดีที่นี่:
https://www.cuelogic.com/blog/using-framelayout-for-designing-xml-layouts-in-android
LinearLayoutจัดเรียงองค์ประกอบเคียงข้างกันทั้งแนวนอนหรือแนวตั้ง
RelativeLayoutช่วยให้คุณจัดเรียงองค์ประกอบ UI ของคุณตามกฎเฉพาะ คุณสามารถระบุกฎเช่น: จัดเรียงสิ่งนี้กับขอบซ้ายของผู้ปกครองวางสิ่งนี้ไว้ที่ด้านซ้าย / ขวาขององค์ประกอบนี้เป็นต้น
AbsoluteLayoutสำหรับการจัดตำแหน่งแบบสัมบูรณ์เช่นคุณสามารถระบุพิกัดที่แน่นอนที่มุมมองควรไป
FrameLayoutช่วยให้ตำแหน่งของการดูตามแนวแกน Z ซึ่งหมายความว่าคุณสามารถซ้อนองค์ประกอบมุมมองของคุณหนึ่งองค์ประกอบเหนืออื่น ๆ