Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

แรงโน้มถ่วงและ layout_gravity บน Android แตกต่างกันอย่างไร


Android รองรับทั้งแรงโน้มถ่วงและ layout_gravity แรงโน้มถ่วงปรับตำแหน่งมุมมอง การใช้แรงโน้มถ่วงทำให้เราสามารถจัดแนวมุมมองได้ดังที่แสดงด้านล่าง

<TextView
   android:id = "@+id/button"
   android:layout_width = "match_parent"
   android:layout_height = "wrap_content"
   android:gravity = "center"
   android:text = "Click here to hide"
/>

ในโค้ดด้านบน Textview จะตั้งค่าตรงกลางเลย์เอาต์หลัก

คุณสมบัติของแรงโน้มถ่วง

  • Center - จะทำให้มุมมองอยู่ตรงกลางของเค้าโครงหลัก

  • ถูกต้อง - มันจะวางมุมมองทางด้านขวาของโครงร่างหลัก

  • ซ้าย − มันจะวางมุมมองทางด้านซ้ายของโครงร่างหลัก

  • สิ้นสุด - มันจะวางมุมมองในตำแหน่งสิ้นสุดของเค้าโครงหลัก

  • เริ่ม - มันจะวางมุมมองในตำแหน่งเริ่มต้นของเค้าโครงหลัก

  • บน − มันจะวางมุมมองในตำแหน่งบนสุดของโครงร่างหลัก

  • ด้านล่าง - มันจะวางมุมมองในตำแหน่งด้านล่างของเค้าโครงหลัก

  • แนวตั้งตรงกลาง - มันจะวางมุมมองในแนวตั้งตรงกลางของเค้าโครงหลัก แต่ต้องใช้ MATCH_PARENT เป็นความสูงสำหรับมุมมองย่อย

  • Center Horizontal - มันจะวางมุมมองในแนวนอนตรงกลางของเค้าโครงหลัก แต่ต้องใช้ MATCH_PARENT เป็นความกว้างสำหรับมุมมองลูก

  • layout_gravity − เลย์เอาต์แรงโน้มถ่วงเหมือนกับแรงโน้มถ่วง แต่จะใส่มุมมองตามมุมเลย์เอาต์หลักดังที่แสดงด้านล่าง
<EditText
   android:id = "@+id/editext"
   android:layout_width = "wrap_content"
   android:layout_height = "wrap_content"
   android:layout_gravity = "right">
</EditText>

ในตัวอย่างข้างต้น เราเก็บ layout_gravity ไว้เหมือนเดิม โดยจะวางที่ด้านขวาของมุมมองหลัก

ตัวอย่างนี้แสดงให้เห็นความแตกต่างระหว่างแรงโน้มถ่วงและเลย์เอาต์_แรงโน้มถ่วง

ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่

ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
   xmlns:tools = "https://schemas.android.com/tools"
   android:id = "@+id/rootview"
   android:layout_width = "match_parent"
   android:layout_height = "match_parent"
   android:orientation = "vertical"
   tools:context = ".MainActivity">
   <EditText
      android:id = "@+id/editext"
      android:layout_width = "wrap_content"
      android:layout_height = "wrap_content"
      android:layout_gravity = "right"></EditText>
   <TextView
      android:id = "@+id/button"
      android:layout_width = "match_parent"
      android:layout_height = "wrap_content"
      android:gravity = "center"
      android:text = "Click here to hide" />
</LinearLayout>

มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์แล้วคลิกไอคอน Run จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก จากนั้นตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ

แรงโน้มถ่วงและ layout_gravity บน Android แตกต่างกันอย่างไร

ในโค้ดด้านบน เราให้แรงโน้มถ่วงเป็นศูนย์กลางสำหรับการดูข้อความ ดังนั้นมันจึงถูกวางไว้ที่กึ่งกลางของมุมมองหลัก และในข้อความแก้ไข เรารักษาแรงโน้มถ่วงของเลย์เอาต์ไว้ทางด้านขวา เพื่อให้วางที่ด้านขวาของมุมมองหลัก