ทรัพยากรของเลย์เอาต์
    
    
      
    
    
      
      จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
    
    
      
      บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
    
  
  
      
    
  
  
  
  
  
    
  
  
    
    
    
ทรัพยากรเลย์เอาต์จะกำหนดสถาปัตยกรรมสำหรับ UI ใน Activity หรือ
ของ UI
- ตำแหน่งที่ตั้งไฟล์:
 res/layout/filename.xml - 
ชื่อไฟล์จะใช้เป็นรหัสทรัพยากร
- ประเภทข้อมูลทรัพยากรที่คอมไพล์:
- ตัวชี้ทรัพยากรไปยังทรัพยากร View(หรือคลาสย่อย)
- การอ้างอิงทรัพยากร:
- 
ใน Java: R.layout.filename
 ใน XML:@[package:]layout/filename
- ไวยากรณ์:
- 
<?xml version="1.0" encoding="utf-8"?>
<ViewGroup
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@[+][package:]id/resource_name"
    android:layout_height=["dimension" | "match_parent" | "wrap_content"]
    android:layout_width=["dimension" | "match_parent" | "wrap_content"]
    [ViewGroup-specific attributes] >
    <View
        android:id="@[+][package:]id/resource_name"
        android:layout_height=["dimension" | "match_parent" | "wrap_content"]
        android:layout_width=["dimension" | "match_parent" | "wrap_content"]
        [View-specific attributes] >
        <requestFocus/>
    </View>
    <ViewGroup >
        <View />
    </ViewGroup>
    <include layout="@layout/layout_resource"/>
</ViewGroup>หมายเหตุ: องค์ประกอบรูทอาจเป็น
ViewGroup,Viewหรือ<merge>ก็ได้ แต่จะมีได้เฉพาะองค์ประกอบ
องค์ประกอบรูท 1 รายการและต้องมีแอตทริบิวต์xmlns:androidที่มีandroidตามที่แสดงในตัวอย่างไวยากรณ์ก่อนหน้านี้
 
- องค์ประกอบ:
- 
  
  - <ViewGroup>
- คอนเทนเนอร์สำหรับองค์ประกอบ Viewอื่นๆ เรามี
    ออบเจ็กต์ViewGroupประเภทต่างๆ และแต่ละประเภทช่วยให้คุณ
    ระบุเลย์เอาต์ขององค์ประกอบย่อยในลักษณะต่างๆ ประเภทต่างๆViewGroupออบเจ็กต์ประกอบด้วยLinearLayoutRelativeLayoutและFrameLayoutอย่าคาดเดาเองว่าอนุมานใดๆ ของ ViewGroupยอมรับมุมมองที่ซ้อนกัน กลุ่มมุมมองบางกลุ่ม
    เป็นการติดตั้งใช้งานคลาสAdapterViewซึ่งเป็นตัวกำหนด
    ของบุตรหลานที่มาจากAdapterเท่านั้น
 แอตทริบิวต์: 
        - android:id
- รหัสทรัพยากร ชื่อทรัพยากรที่ไม่ซ้ำสำหรับองค์ประกอบ ซึ่งคุณ
ใช้เพื่อรับการอ้างอิง ViewGroupจากใบสมัครของคุณ สำหรับข้อมูลเพิ่มเติม
โปรดดูในส่วนค่าสำหรับ android:id
- android:layout_height
- มิติข้อมูลหรือคีย์เวิร์ด ต้องระบุ ความสูงของกลุ่มในรูปแบบ
ค่ามิติข้อมูล (หรือ
ทรัพยากรมิติข้อมูล) หรือคีย์เวิร์ด
("match_parent"หรือ"wrap_content") สำหรับข้อมูลเพิ่มเติม
ให้ดูค่าสำหรับ android:layout_height และ
android:layout_width
- android:layout_width
- มิติข้อมูลหรือคีย์เวิร์ด ต้องระบุ ความกว้างสำหรับกลุ่มแบบ
ค่ามิติข้อมูล (หรือ
ทรัพยากรมิติข้อมูล) หรือคีย์เวิร์ด
("match_parent"หรือ"wrap_content") สำหรับข้อมูลเพิ่มเติม
ให้ดูค่าสำหรับ android:layout_height และ
android:layout_width
 ViewGroupคลาสพื้นฐานรองรับแอตทริบิวต์เพิ่มเติม และแอตทริบิวต์อีกหลายรายการได้รับการสนับสนุนโดยการนำViewGroupสำหรับการอ้างอิงแอตทริบิวต์ที่ใช้ได้ทั้งหมด
      โปรดดูเอกสารอ้างอิงที่เกี่ยวข้องสำหรับชั้นเรียนViewGroupตัวอย่างเช่น XML ของLinearLayoutแอตทริบิวต์
 
- <View>
- คอมโพเนนต์ UI แต่ละรายการที่โดยทั่วไปจะเรียกว่าวิดเจ็ต แตกต่าง
    ออบเจ็กต์ Viewชนิด ได้แก่TextViewButtonและCheckBoxแอตทริบิวต์: 
        - android:id
- รหัสทรัพยากร ชื่อทรัพยากรที่ไม่ซ้ำสำหรับองค์ประกอบ ซึ่งใช้เพื่อ
          ขอรับข้อมูลอ้างอิง Viewจากใบสมัครของคุณ สำหรับข้อมูลเพิ่มเติม
โปรดดูในส่วนค่าสำหรับ android:id
- android:layout_height
- มิติข้อมูลหรือคีย์เวิร์ด ต้องระบุ ความสูงขององค์ประกอบตาม
ค่ามิติข้อมูล (หรือ
ทรัพยากรมิติข้อมูล) หรือคีย์เวิร์ด
("match_parent"หรือ"wrap_content") สำหรับข้อมูลเพิ่มเติม
ให้ดูค่าสำหรับ android:layout_height และ
android:layout_width
- android:layout_width
- มิติข้อมูลหรือคีย์เวิร์ด ต้องระบุ ความกว้างขององค์ประกอบในรูปแบบ
ค่ามิติข้อมูล (หรือ
ทรัพยากรมิติข้อมูล) หรือคีย์เวิร์ด
("match_parent"หรือ"wrap_content") สำหรับข้อมูลเพิ่มเติม
ให้ดูค่าสำหรับ android:layout_height และ
android:layout_width
 Viewคลาสพื้นฐานรองรับแอตทริบิวต์เพิ่มเติม และแอตทริบิวต์อีกหลายรายการได้รับการสนับสนุนโดยการนำViewอ่านข้อมูลเพิ่มเติมได้ที่เลย์เอาต์ สำหรับ
การอ้างอิงแอตทริบิวต์ที่มีอยู่ทั้งหมด
      โปรดดูเอกสารอ้างอิงที่เกี่ยวข้อง เช่น แอตทริบิวต์ XMLTextView
 
- <requestFocus>
- องค์ประกอบใดก็ตามที่แสดงถึงออบเจ็กต์ Viewสามารถรวมองค์ประกอบที่ว่างเปล่านี้ได้
    ซึ่งทำให้ผู้ปกครองโฟกัสที่หน้าจอตั้งแต่แรก คุณสามารถมีเพียงอย่างใดอย่างหนึ่งเท่านั้น
    องค์ประกอบต่อไฟล์
- <include>
- รวมไฟล์เลย์เอาต์ในเลย์เอาต์นี้
      แอตทริบิวต์: 
        - layout
- แหล่งข้อมูลของเลย์เอาต์ ต้องระบุ การอ้างอิงเลย์เอาต์
ทรัพยากร
- android:id
- รหัสทรัพยากร ลบล้างรหัสที่กำหนดให้กับมุมมองรูทในเลย์เอาต์ที่รวมอยู่
        
- android:layout_height
- มิติข้อมูลหรือคีย์เวิร์ด ลบล้างความสูงที่กำหนดให้มุมมองรากใน
ที่รวมอยู่ มีผลก็ต่อเมื่อประกาศ android:layout_widthด้วยเท่านั้น
- android:layout_width
- มิติข้อมูลหรือคีย์เวิร์ด ลบล้างความกว้างที่ให้กับมุมมองรากใน
ที่รวมอยู่ มีผลก็ต่อเมื่อประกาศ android:layout_heightด้วยเท่านั้น
 คุณจะรวมแอตทริบิวต์เลย์เอาต์อื่นๆ ใน <include>ที่มีลักษณะดังนี้ได้
ที่สนับสนุนโดยองค์ประกอบรูทในเลย์เอาต์ที่รวมอยู่ และจะลบล้างที่กำหนดไว้ใน
องค์ประกอบราก
 ข้อควรระวัง: หากต้องการลบล้างแอตทริบิวต์เลย์เอาต์โดยใช้
      <include>คุณจะต้องลบล้างทั้ง 2 แท็กandroid:layout_heightและandroid:layout_widthเพื่อให้
      แอตทริบิวต์การออกแบบอื่นๆ เพื่อให้มีผล
 อีกวิธีหนึ่งในการรวมเลย์เอาต์คือการใช้ ViewStub: เลย์เอาต์ที่เรียบง่าย
ที่ไม่กินพื้นที่ของเลย์เอาต์จนกว่าคุณจะขยายมุมมองให้ชัดเจน ในสไลด์จะมีองค์ประกอบ
ไฟล์เลย์เอาต์ที่กำหนดโดยแอตทริบิวต์android:layoutสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ViewStubโปรดอ่านโหลด
  ครั้งตามคำขอ
 
- <merge>
- องค์ประกอบรูทสำรองที่ไม่ได้วาดในลำดับชั้นของเลย์เอาต์ การใช้เป็น
องค์ประกอบรูทจะมีประโยชน์เมื่อคุณทราบว่าเลย์เอาต์นี้อยู่ในเลย์เอาต์
ที่มี Viewระดับบนที่เหมาะสมอยู่แล้วที่มีรายการย่อยของ
องค์ประกอบ<merge>ซึ่งจะเป็นประโยชน์อย่างยิ่งเมื่อคุณวางแผนที่จะรวมเลย์เอาต์นี้
ในไฟล์เลย์เอาต์อื่นโดยใช้ <include>และ
เลย์เอาต์นี้ไม่ต้องใช้คอนเทนเนอร์ViewGroupอื่น สำหรับข้อมูลเพิ่มเติม
ข้อมูลเกี่ยวกับการผสานรวมเลย์เอาต์ โปรดอ่านใช้เลย์เอาต์ซ้ำด้วย <include>
 
 ค่าสำหรับ android:idสำหรับค่ารหัส โดยทั่วไปแล้วคุณจะใช้รูปแบบไวยากรณ์นี้: "@+id/name"ดังที่แสดงในตัวอย่างต่อไปนี้ 
เครื่องหมายบวก+บ่งบอกว่าเป็นรหัสทรัพยากรใหม่ และเครื่องมือaaptจะสร้าง
จำนวนเต็มใหม่ของทรัพยากรในคลาสR.javaถ้ายังไม่มี
 <TextView android:id="@+id/nameTextbox"/> ตอนนี้ชื่อ nameTextboxเป็นรหัสทรัพยากรที่แนบอยู่กับองค์ประกอบนี้แล้ว จากนั้นคุณจะสามารถ
อ้างอิงถึงTextViewที่เชื่อมโยงกับ ID ดังกล่าวใน Java:
 Kotlinval textView: TextView? = findViewById(R.id.nameTextbox) JavaTextView textView = findViewById(R.id.nameTextbox); 
โค้ดนี้จะแสดงออบเจ็กต์ TextView
 แต่ถ้าคุณได้กำหนดทรัพยากร ID ไว้แล้ว และไม่ได้
อยู่แล้ว คุณสามารถนำรหัสนั้นไปใช้กับเอลิเมนต์ Viewได้โดยยกเว้น
เครื่องหมายบวกในค่าandroid:id
 ค่าสำหรับ android:layout_height และ
android:layout_widthค่าความสูงและความกว้างจะแสดงโดยใช้ค่าใดๆ
  มิติข้อมูล
  หน่วยที่รองรับโดย Android (px, dp, sp, pt, in, mm) หรือคีย์เวิร์ดต่อไปนี้ | ค่า | คำอธิบาย | 
|---|
 
      | match_parent | ตั้งค่ามิติข้อมูลให้ตรงกับองค์ประกอบหลัก เพิ่มใน API ระดับ 8 ไปยัง
เลิกใช้งาน fill_parent |  
      | wrap_content | ตั้งค่าขนาดเป็นขนาดที่จําเป็นเพื่อให้พอดีกับเนื้อหาขององค์ประกอบนี้เท่านั้น |  
 องค์ประกอบของมุมมองที่กำหนดเองคุณสามารถสร้างViewและViewGroupที่กำหนดเองได้
องค์ประกอบเหล่านี้และนำไปใช้กับเค้าโครงของคุณเช่นเดียวกับเค้าโครงมาตรฐาน
 คุณระบุแอตทริบิวต์ที่รองรับในองค์ประกอบ XML ได้ด้วย สำหรับข้อมูลเพิ่มเติม
ดูสร้างคอมโพเนนต์มุมมองที่กำหนดเอง
 
- ตัวอย่าง:
- ไฟล์ XML ที่บันทึกไว้ที่ res/layout/main_activity.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:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Hello, I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello, I am a Button" />
</LinearLayout>โค้ดแอปพลิเคชันนี้จะโหลดเลย์เอาต์สำหรับ Activityใน
    เมธอดonCreate():
 
- 
Kotlinpublic override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main_activity)
}Javapublic void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
}
- ดูเพิ่มเติม
- 
 
    
  
  
    
    
      
       
    
    
  
  
  ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
  อัปเดตล่าสุด 2025-07-27 UTC
  
  
  
    
      [null,null,["อัปเดตล่าสุด 2025-07-27 UTC"],[],[]]