ฉันพยายามจัดปุ่มให้อยู่กึ่งกลางของเลย์เอาท์แบบสัมพัทธ์ ฉันได้ลองใช้ฟังก์ชั่นแรงโน้มถ่วงและทิศทางแล้ว แต่พวกเขาไม่ทำอะไรเลย
ฉันพยายามจัดปุ่มให้อยู่กึ่งกลางของเลย์เอาท์แบบสัมพัทธ์ ฉันได้ลองใช้ฟังก์ชั่นแรงโน้มถ่วงและทิศทางแล้ว แต่พวกเขาไม่ทำอะไรเลย
คำตอบ:
ลอง
android:layout_centerHorizontal="true"
อย่างนี้มันเหมาะกับฉัน:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff0000">
<Button
android:id="@+id/btn_mybutton"
android:layout_height="wrap_content"
android:layout_width="124dip"
android:layout_marginTop="5dip"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
คุณสามารถใช้ CENTER_IN_PARENT สำหรับเค้าโครงที่สัมพันธ์กัน
เพิ่มandroid:layout_centerInParent="true"
องค์ประกอบที่คุณต้องการให้เป็นศูนย์กลางใน RelativeLayout
อาร์เคเดียเพียงลองใช้รหัสด้านล่าง มีหลายวิธีในการรับผลลัพธ์ที่คุณต้องการซึ่งเป็นหนึ่งในวิธีที่ง่ายกว่า
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center">
<Button
android:id="@+id/the_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Centered Button"/>
</RelativeLayout>
การตั้งค่าแรงโน้มถ่วงของ RelativeLayout นั้นจะส่งผลกระทบต่อวัตถุทั้งหมดที่อยู่ภายใน ในกรณีนี้มันเป็นเพียงปุ่ม คุณสามารถใช้การตั้งค่าแรงโน้มถ่วงใด ๆ ได้ที่นี่แน่นอน (เช่น center_horizontal, ด้านบน, ด้านขวาและอื่น ๆ )
คุณสามารถใช้รหัสนี้ด้านล่าง:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relative_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/the_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Centered Button"
android:layout_centerInParent="true"/>
</RelativeLayout>
สรุป
เพิ่ม:
android:layout_centerInParent="true"
ใช้งานได้กับ RelativeLayout หากหนึ่งในคุณลักษณะต่อไปนี้ถูกตั้งค่าสำหรับมุมมอง:
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
ซึ่งจัดแนวมุมมองชายด์กับมุมมองพาเรนต์ "ศูนย์กลาง" ขึ้นอยู่กับแกนของการจัดตำแหน่งที่คุณเลือก:
ซ้าย / ขวา -> แนวตั้ง
บน / ล่าง -> แนวนอน
การตั้งค่าแรงโน้มถ่วงของเด็ก / เนื้อหาภายในมุมมอง:
android:gravity="center"
กำลังจัดกึ่งกลางเด็กไว้ในมุมมองพาเรนต์ในกรณีใด ๆ หากไม่มีชุดการจัดแนว ตัวเลือกที่คุณสามารถเลือกได้:
<!-- Axis to Center -->
android:gravity="center_horizontal"
android:gravity="center_vertical"
<!-- Alignment to set-->
android:gravity="top"
android:gravity="bottom"
android:gravity="left"
android:gravity="right"
android:gravity="fill"
...
จากนั้นมี:
android:layout_gravity="center"
ซึ่งจัดกึ่งกลางมุมมองภายในตัวมันเอง
และในที่สุดคุณสามารถเพิ่มแอททริบิวต่อไปนี้ลงในมุมมองพาเรนต์:
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
ใช้แอททริบิวandroid:centerInParent="true"
ภายในมุมมองเมื่อคุณต้องการจัดมุมมองให้อยู่กึ่งกลางในเลย์เอาต์ที่สัมพันธ์กัน
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NWE"
android:textSize="30dp"/>
</RelativeLayout>
มันง่ายไม่จัดกับอะไรเลย
<Button
android:id="@+id/the_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Centered Button"/>
ในการจัดตำแหน่งกึ่งกลางในทิศทางใดทิศทางหนึ่งให้ใช้ android: layout_centerHorizontal = "true" หรือ android: layout_centerVertical = "true" ในเค้าโครงลูก
การลบการจัดตำแหน่งใด ๆ เช่น android: layout_alignParentStart = "true" และการเพิ่ม centerInParent ทำงานให้ฉัน หาก "จัดตำแหน่ง" ยังคงอยู่ centerInParent จะไม่ทำงาน
มันง่ายมาก ลองรหัสด้านล่าง
<RelativeLayout
android:id="@+id/second_RL"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/first_RL"
android:background="@android:color/holo_blue_bright"
android:gravity="center">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</RelativeLayout>
คุณต้องจัดแนวให้ชิดซ้ายหรือขวาของมุมมองพาเรนต์
อย่าใช้สิ่งเหล่านี้เมื่อใช้ android:centerInParent="true"
รหัส: -
android:layout_alignParentLeft="true"
android:layout_alignParentLeft="true"
android:layout_alignRight=""
เป็นต้น