ความแตกต่างระหว่าง View และ ViewGroup ใน Android


คำตอบ:


131

ดู

  1. View วัตถุเป็นส่วนประกอบพื้นฐานขององค์ประกอบส่วนติดต่อผู้ใช้ (UI) ใน Android
  2. View เป็นกล่องสี่เหลี่ยมผืนผ้าธรรมดาที่ตอบสนองต่อการกระทำของผู้ใช้
  3. ตัวอย่างเช่นEditText, Button, CheckBoxฯลฯ ..
  4. Viewหมายถึงandroid.view.Viewคลาสซึ่งเป็นคลาสพื้นฐานของคลาส UI ทั้งหมด

ViewGroup

  1. ViewGroupคือภาชนะที่มองไม่เห็น มันถือViewและViewGroup
  2. ยกตัวอย่างเช่นLinearLayoutเป็นViewGroupที่มีปุ่ม (ดู) และรูปแบบอื่น ๆ
  3. ViewGroup เป็นคลาสพื้นฐานสำหรับเลย์เอาต์

11
ฉันคิดว่าน่าสังเกต ViewGroup เป็นคลาสย่อยของ View
Pinkerton

ดังนั้นถ้า ViewGroup เป็นคลาสย่อยของ View หมายความว่า View เป็นคลาสพื้นฐานสำหรับ Layouts ไม่ใช่ ViewGroup?
Shivanshu

1
@Shivanshu มันขึ้นอยู่กับความหมายของ "คลาสพื้นฐาน" ระดับViewในการเปิดขยายObjectเพื่อให้คุณจะบอกว่าObjectเป็นชั้นฐานสำหรับรูปแบบ?
horcrux

60

ภาพด้านล่างคือคำตอบ อย่าใช้มันซับซ้อนเกินไป

ป้อนคำอธิบายภาพที่นี่


7
ตรงประเด็น. รูปภาพอธิบายในเชิงปฏิบัติซึ่งเป็นสิ่งที่ดี แต่คำจำกัดความของคำตอบข้างต้นก็ดูเหมือนว่าจำเป็นเพื่อเพิ่มบางสิ่งที่สำคัญให้กับคำตอบโดยรวม
ivanleoncz

31
  1. A ViewGroupคือมุมมองพิเศษที่สามารถมีมุมมองอื่น ๆ ได้ (เรียกว่าชายด์) กลุ่มมุมมองเป็นคลาสพื้นฐานสำหรับเลย์เอาต์และคอนเทนเนอร์มุมมอง คลาสนี้ยังกำหนดViewGroup.LayoutParamsคลาสซึ่งทำหน้าที่เป็นคลาสพื้นฐานสำหรับพารามิเตอร์เลย์เอาต์

    Viewคลาสแสดงถึง Building Block พื้นฐานสำหรับคอมโพเนนต์ส่วนติดต่อผู้ใช้ มุมมองใช้พื้นที่สี่เหลี่ยมบนหน้าจอและรับผิดชอบในการวาดภาพและการจัดการเหตุการณ์ View เป็นคลาสพื้นฐานสำหรับวิดเจ็ตซึ่งใช้ในการสร้างคอมโพเนนต์ UI แบบโต้ตอบ (ปุ่มฟิลด์ข้อความ ฯลฯ )

  2. ตัวอย่าง: ViewGroup (LinearLayout), View (TextView)

ข้อมูลอ้างอิง


14

Viewเป็นส่วนประกอบพื้นฐานของUI(ส่วนต่อประสานผู้ใช้) ใน Android มุมมองคือกล่องสี่เหลี่ยมขนาดเล็กที่ตอบสนองต่ออินพุตของผู้ใช้ ตัวอย่าง: EditText, Button, CheckBoxฯลฯ ..

ViewGroupเป็นคอนเทนเนอร์ที่มองไม่เห็นของมุมมองอื่น ๆ (มุมมองเด็ก) และกลุ่มมุมมองอื่น ๆ เช่น: LinearLayoutเป็นกลุ่มวิวที่สามารถมีมุมมองอื่น ๆ อยู่ในนั้น

ViewGroupเป็นมุมมองพิเศษที่ขยายจาก View เป็นคลาสพื้นฐาน ViewGroupเป็นคลาสพื้นฐานสำหรับเลย์เอาต์

ViewGroupเป็นชื่อรัฐดูเป็นเอกพจน์และกลุ่มของผู้ชมเป็น

ข้อมูลเพิ่มเติม: http://www.herongyang.com/Android/View-ViewGroup-Layout-and-Widget.html


4

ViewGroupเป็นตัวViewที่ทำงานเป็นคอนเทนเนอร์สำหรับมุมมองอื่น ๆ ขยายการทำงานของViewชั้นเรียนเพื่อให้มีวิธีที่มีประสิทธิภาพในการจัดวางมุมมองของเด็ก

ตัวอย่างเช่นLinearLayoutเป็นเครื่องมือViewGroupที่ช่วยให้คุณกำหนดแนวที่คุณต้องการวางมุมมองของเด็กนั่นคือทั้งหมดที่คุณต้องทำและLinearLayoutจะดูแลส่วนที่เหลือ




1

Viewเป็น SuperClass ของส่วนประกอบทั้งหมดเช่นTextView, EditText, ListView,อื่น ๆ ในขณะที่ViewGroupCollection of Views (TextView, EditText, ListView, etc..)ค่อนข้างเหมือนคอนเทนเนอร์


1

ออบเจ็กต์ View เป็นส่วนประกอบของอินเทอร์เฟซผู้ใช้ (UI) เช่นปุ่มหรือกล่องข้อความและเรียกอีกอย่างว่าวิดเจ็ต

อ็อบเจ็กต์ ViewGroup คือเลย์เอาต์นั่นคือคอนเทนเนอร์ของอ็อบเจ็กต์ ViewGroup อื่น ๆ (เลย์เอาต์) และอ็อบเจ็กต์ View (วิดเจ็ต) เป็นไปได้ที่จะมีเค้าโครงภายในเค้าโครงอื่น เรียกว่าเลย์เอาต์แบบซ้อนกัน แต่สามารถเพิ่มเวลาในการวาดอินเทอร์เฟซผู้ใช้ได้

อินเทอร์เฟซผู้ใช้สำหรับแอปสร้างขึ้นโดยใช้ลำดับชั้นของออบเจ็กต์ ViewGroup และ View ใน Android Studio คุณสามารถใช้หน้าต่าง Component Tree เพื่อแสดงภาพลำดับชั้นนี้ได้

Layout Editor ใน Android Studio สามารถใช้ลากและวางดูวัตถุ (วิดเจ็ต) ในเค้าโครง ช่วยลดความยุ่งยากในการสร้างเค้าโครง


1

พูดง่ายๆว่า View เป็นองค์ประกอบ UI ที่เราโต้ตอบด้วยเมื่อใช้แอพเช่นปุ่มแก้ไขข้อความและรูปภาพเป็นต้น View เป็นคลาสย่อยของ Android.view กลุ่ม View While View คือคอนเทนเนอร์ที่มีมุมมองเหล่านี้ทั้งหมดอยู่ภายใน นอกเหนือจากกลุ่มมุมมองอื่น ๆ เช่น linear หรือ Frame Layout เป็นต้นตัวอย่างเช่นถ้าเราออกแบบและใช้องค์ประกอบรูทเป็น Linear layout ตอนนี้เลย์เอาต์หลักของเราเป็นเลย์เอาต์เชิงเส้นภายในเราสามารถใช้กลุ่มมุมมองอื่น (เช่นเลย์เอาต์เชิงเส้นอื่น) และอื่น ๆ อีกมากมาย มุมมองเช่นปุ่มหรือ textview เป็นต้น


0

ViewGroup อธิบายเค้าโครงของ Views ในกลุ่ม สองตัวอย่างพื้นฐานของ ViewGroups ได้แก่ LinearLayout และ RelativeLayout การแบ่ง LinearLayout ให้ดียิ่งขึ้นคุณสามารถมีทั้ง Vertical LinearLayout หรือ Horizontal LinearLayout หากคุณเลือก Vertical LinearLayout มุมมองของคุณจะซ้อนกันในแนวตั้งบนหน้าจอ สองตัวอย่างพื้นฐานที่สุดของมุมมองคือ TextView และปุ่ม ดังนั้นหากคุณมี ViewGroup ของ Vertical LinearLayout มุมมองของคุณ (เช่น TextViews และ Buttons) จะเรียงเป็นแนวตั้งลงบนหน้าจอของคุณ

เมื่อผู้โพสต์อื่น ๆ แสดง ViewGroups แบบซ้อนกันความหมายก็คือหนึ่งในแถวใน Vertical LinearLayout ของฉันอาจเป็นหลายรายการที่จัดเรียงในแนวนอนที่ระดับล่าง ในกรณีนั้นฉันจะมี Horizontal LinearLayout เป็นหนึ่งในลูกของ Vertical LinearLayout ระดับบนสุดของฉัน

ตัวอย่างของ ViewGroups ที่ซ้อนกัน:
Parent ViewGroup = Vertical LinearLayout

Row1: TextView1
Row2: Button1
Row3: Image TextView2 Button2 <- Horizontal Linear ซ้อนใน Vertical Linear
Row4: TextView3
Row5: Button3


1
ตัวอย่าง Nested ViewGroups:
sv Math Tutor
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.