Tổng quan về UI

Tất cả phần tử giao diện người dùng trong một ứng dụng Android đều được xây dựng bằng cách sử dụng các đối tượng ViewViewGroup. View là một đối tượng có chức năng vẽ thứ gì đó trên màn hình mà người dùng có thể tương tác với. ViewGroup là một đối tượng có chức năng giữ các đối tượng View (và ViewGroup) khác để định nghĩa bố trí của giao diện.

Android cung cấp một bộ sưu tập cả lớp con ViewViewGroup cung cấp cho bạn các cách điều khiển nhập liệu thông dụng (chẳng hạn như nút và trường văn bản) và các mô hình bố trí khác nhau (chẳng hạn như bố trí tuyến tính hoặc tương đối).

Bố trí Giao diện Người dùng

Giao diện người dùng của từng thành phần trong ứng dụng của bạn được định nghĩa bằng cách sử dụng một phân cấp của các đối tượng ViewViewGroup như minh họa trong hình 1. Mỗi nhóm dạng xem là một bộ chứa vô hình có chức năng tổ chức các dạng xem con, trong khi dạng xem con có thể là điều khiển nhập liệu hoặc các widget khác để vẽ một phần nào đó của UI. Cây phân cấp này có thể đơn giản hoặc phức tạp như nhu cầu của bạn (nhưng đơn giản sẽ tốt cho hiệu năng).

Hình 1. Minh họa một phân cấp dạng xem có chức năng định nghĩa một bố trí UI.

Để khai báo bố trí của mình, bạn có thể khởi tạo các đối tượng View trong mã và bắt đầu xây dựng một cây, nhưng cách dễ nhất và hiệu quả nhất để định nghĩa bố trí của bạn đó là bằng một tệp XML. XML cung cấp một cấu trúc mà người dùng có thể đọc được cho bố trí, tương tự như HTML.

Tên của phần tử XML đối với một dạng xem tương ứng với lớp Android mà nó biểu diễn. Vì thế một phần tử <TextView> tạo ra một widget TextView trong UI của bạn, và một phần tử <LinearLayout> tạo ra một nhóm dạng xem LinearLayout .

Ví dụ, một bố trí thẳng đứng đơn giản với dạng xem văn bản và nút trông như sau:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:orientation="vertical" >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="I am a Button" />
</LinearLayout>

Khi bạn tải một tài nguyên bố trí trong ứng dụng của mình, Android khởi tạo từng nút của bố trí vào một đối tượng thời gian chạy mà bạn có thể sử dụng để định nghĩa các hành vi bổ sung, truy vấn trạng thái của đối tượng hoặc sửa đổi bố trí.

Để xem hướng dẫn đầy đủ về tạo bố trí UI, hãy xem phần Bố trí XML.

Thành phần Giao diện Người dùng

Bạn không phải xây dựng tất cả UI của mình bằng cách sử dụng các đối tượng ViewViewGroup. Android cung cấp một vài thành phần ứng dụng đưa ra một bố trí UI chuẩn mà bạn chỉ cần định nghĩa nội dung cho nó. Mỗi thành phần UI như vậy đều có một bộ API duy nhất được mô tả trong các tài liệu tương ứng, chẳng hạn như Thanh Hành động, Hộp thoạiThông báo Trạng thái.