Computer >> Máy Tính >  >> Lập trình >> Android

Sự khác biệt giữa trọng lực và layout_gravity trên Android là gì?

Android hỗ trợ cả trọng lực và layout_gravity. Gravity điều chỉnh vị trí xem. Sử dụng lực hấp dẫn, chúng ta có thể căn chỉnh chế độ xem như hình dưới đây.

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

Trong đoạn mã trên, Textview sẽ được đặt ở giữa bố cục mẹ.

Tính chất của trọng lực

  • Trung tâm - nó sẽ đưa chế độ xem vào trung tâm của bố cục chính.

  • Đúng - nó sẽ đưa chế độ xem vào bên phải bố cục mẹ.

  • Bên trái - nó sẽ đưa chế độ xem ở bên trái của bố cục mẹ.

  • Kết thúc - nó sẽ đặt chế độ xem ở vị trí cuối của bố cục mẹ.

  • Bắt đầu - nó sẽ đặt chế độ xem ở vị trí bắt đầu của bố cục mẹ.

  • Trên cùng - Nó sẽ đặt chế độ xem ở vị trí Trên cùng của bố cục mẹ.

  • Bottom - nó sẽ đặt chế độ xem ở vị trí Bottom của bố cục chính.

  • Chiều dọc trung tâm - nó sẽ đặt chế độ xem ở trung tâm chiều dọc của bố cục chính. Nhưng nó yêu cầu MATCH_PARENT làm Chiều cao cho chế độ xem trẻ em.

  • Center Horizontal - Nó sẽ đặt chế độ xem ở giữa theo chiều ngang của bố cục chính. Nhưng nó yêu cầu MATCH_PARENT làm chiều rộng cho chế độ xem con.

  • layout_gravity - Lực hấp dẫn của bố cục giống như trọng lực nhưng nó sẽ đặt chế độ xem dựa trên các góc của bố cục chính như được hiển thị bên dưới.
<EditText
   android:id = "@+id/editext"
   android:layout_width = "wrap_content"
   android:layout_height = "wrap_content"
   android:layout_gravity = "right">
</EditText>

Trong ví dụ trên, chúng tôi giữ layout_gravity là đúng. Nó sẽ đặt ở bên phải của chế độ xem gốc.

Ví dụ này chứng minh về sự khác biệt giữa trọng lực và layout_gravity.

Bước 1 - Tạo một dự án mới trong Android Studio, đi tới Tệp ⇒ Dự án Mới và điền tất cả các chi tiết cần thiết để tạo một dự án mới.

Bước 2 - Thêm mã sau vào 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>

Hãy thử chạy ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị Di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ. Chọn thiết bị di động của bạn làm tùy chọn, sau đó kiểm tra thiết bị di động sẽ hiển thị màn hình mặc định của bạn

Sự khác biệt giữa trọng lực và layout_gravity trên Android là gì?

Trong đoạn mã trên, chúng tôi giữ trọng lực làm trung tâm cho textview để nó được đặt ở trung tâm của chế độ xem gốc và trong edittext, chúng tôi giữ trọng lực của bố cục ở bên phải để nó được đặt ở bên phải của chế độ xem chính.