Android: RelativeLayout trong Android


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

RelativeLayout trong Android cho phép bạn xác định vị trí các view con trong mối quan hệ cân xứng với nhau. Vị trí của mỗi view có thể được xác định tùy theo các phần tử anh em hoặc tùy theo phần tử cha.

Relative trong Android
Relative Layout

Thuộc tính của RelativeLayout trong Android

Bảng dưới liệt kê một số thuộc tính riêng cho RelativeLayout:

Thuộc tính Miêu tả
android:id Đây là ID mà nhận diện duy nhất Layout đó
android:gravity Xác định cách một đối tượng nên đặt nội dung của nó trên cả hai tọa độ X và Y. Giá trị có thể có là top, bottom, left, right, center, center_vertical, center_horizontal ...
android:ignoreGravity Chỉ rằng View nào không bị tác động bởi thuộc tính gravity

Sử dụng RelativeLayout, bạn có thể căn chỉnh hai phần tử bằng đường viền phải, hoặc làm cho một phần tử ở dưới phần tử khác, đưa vào chính giữa màn hình, chính giữa trái, … Theo mặc định, tất cả view con được vẽ tại top-left của Layout, vì thế bạn phải định nghĩa vị trí của mỗi view bằng cách sử dụng các thuộc tính đa dạng có sẵn từ lớp RelativeLayout.LayoutParams. Dưới đây là một số thuộc tính quan trọng:

Thuộc tính Miêu tả
android:layout_above Đặt cạnh dưới của view này ở trên view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name"
android:layout_alignBottom Làm cạnh dưới của view này kết nối với cạnh dưới của view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name".
android:layout_alignLeft Làm cạnh trái của view này kết nối với cạnh trái của view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name".
android:layout_alignParentBottom Nếu true, làm cạnh dưới của view này kết nối với cạnh dưới của view cha. Phải là một giá trị Boolean, hoặc "true" hoặc "false"
android:layout_alignParentEnd Nếu true, làm cạnh cuối màn hình của view này kết nối với cạnh cuối màn hình của view cha. Phải là một giá trị Boolean, hoặc "true" hoặc "false"
android:layout_alignParentLeft Nếu true, làm cạnh trái của view này kết nối với cạnh trái của view cha. Phải là một giá trị Boolean, hoặc "true" hoặc "false"
android:layout_alignParentRight Nếu true, làm cạnh phải của view này kết nối với cạnh phải của view cha. Phải là một giá trị Boolean, hoặc "true" hoặc "false"
android:layout_alignParentStart Nếu true, làm cạnh đầu màn hình của view này kết nối với cạnh đầu màn hình của view cha. Phải là một giá trị Boolean, hoặc "true" hoặc "false"
android:layout_alignParentTop Nếu true, làm cạnh trên của view này kết nối với cạnh trên của view cha. Phải là một giá trị Boolean, hoặc "true" hoặc "false"
android:layout_alignRight Làm cạnh phải của view này kết nối với cạnh phải của view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name".
android:layout_alignStart Làm cạnh đầu màn hình của view này kết nối với cạnh đầu màn hình của view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name".
android:layout_alignTop Làm cạnh trên của view này kết nối với cạnh trên của view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name".
android:layout_below Đặt cạnh trên của view này dưới view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name".
android:layout_centerHorizontal Nếu true, căn chỉnh giữa view con này theo chiều ngang bên trong view cha. Phải là một giá trị boolean, hoặc "true" hoặc "false"
android:layout_centerInParent Nếu true, căn chỉnh giữa view con này theo chiều ngang và dọc bên trong view cha. Phải là một giá trị boolean, hoặc "true" hoặc "false"
android:layout_centerVertical Nếu true, căn chỉnh giữa view con này theo chiều dọc bên trong view cha. Phải là một giá trị boolean, hoặc "true" hoặc "false"
android:layout_toEndOf Đặt cạnh đầu màn hình của view này tới cạnh cuối màn hình của view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name".
android:layout_toLeftOf Đặt cạnh phải của view này tới cạnh trái của view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name".
android:layout_toRightOf Đặt cạnh trái của view này tới cạnh phải của view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name".
android:layout_toStartOf Đặt cạnh cuối màn hình của view này tới cạnh đầu màn hình của view ID đã cho và phải là một tham chiếu tới resource khác, trong dạng "@[+][package:]type:name".

Ví dụ

Ví dụ sau sẽ minh họa cách sử dụng RelativeLayout.

Sau đây là nội dung của file res/layout/activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity">

  <EditText
    android:id="@+id/editTextName"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:inputType="" android:autofillHints=""/>

  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="543dp"
    android:layout_alignTop="@+id/editTextName"
    android:layout_marginTop="61dp"
    android:orientation="vertical">

    <Button
      android:id="@+id/btn1"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="@string/button1"/>

    <Button
      android:id="@+id/btn2"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="@string/button2"/>
  </LinearLayout>

</RelativeLayout>

Sau đây là nội dung của res/values/strings.xml:

<resources>
  <string name="app_name">RelativeLayoutV1Study</string>
  <string name="button1">Button1</string>
  <string name="button2">Button2</string>
</resources>

Chạy ứng dụng ở trên ta được kết quả như sau:

RelativeLayout trong Android

» Tiếp: TableLayout trong Android
« Trước: LinearLayout trong Android
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!