Xét ví dụ, ta có một màn hình giao diện cho người dùng đăng nhập như sau:
Trên màn hình giao diện này, Android tổ chức hiển thị các phần tử (views) thành
các nhóm (viewgroup), có 2 nhóm chính là:
+ Nhóm 1: gồm 2 nhãn hiển thị „Email‟ và „Password‟ là các TextView; và 2 ô
nhập liệu là các EditText, nhóm này được tổ chức trong một ViewGroup là
LinearLayout dạng dọc (Vertical).
+ Nhóm 2: gồm 2 nút chức năng Login và Cancel là các Button. Nhóm này được
tổ chức trong một ViewGroup là LinearLayout dạng ngang (Horizontal).
Khái niệm View
Một giaodiện người dùng của ứng dụng Android được tạo thành bởi nhiều phần tử
khác nhau. Mỗi phần tử trên giao diện đượcgọi là một view, một view là một lớp con
của lớp android.view.View. View được sử dụng để tạo ra các điều khiển hiển thị trên
màn hình cho phép nhận các tương tác từ người dùng cũng như hiển thị các thông tin cần thiết.
Thư viện Android cung cấp nhiều views được xây dựng sẵn hỗ trợ cho việc thiết
kế giao diện như TextView, Button, CheckBox, v.v.
Khái niệm ViewGroup
ViewGroup là một đối tượng vô hình được sử dụng để chứa các đối tượng views
khác nhau. Mỗi viewgroup là lớp con của lớp android.view.ViewGroup, các đối tượng ViewGroup được sử dụng cho việc tạo ra một hệ thống phân cấp của các đối tượng
ThS. Bùi Trung Úy 48
ViewGroup cũng gần như là View, nhưng đặc biệt hơn một chút, đó là,
ViewGroup được tạo ra để chứa đựng các View hay các ViewGroup khác. Nếu như View là nguồn gốc để tạo ra các phần tử tương tác, thì ViewGroup lạilà nguồn gốc để tạo ra cácbố cục giao diện (layout), các layout mà chúng ta sẽthảo luận trong phần sau như ConstraintLayout, LinearLayout, RelativeLayout, FrameLayout,… Mỗi
layout nhưmột bộ chứa (container) để chứa đựng các View hay các ViewGroup khác
bên trong, các thành phần bên trong này đượcsắp xếp theo một quy tắc nhất định tùy theo từng loại layout.
Kết hợp View và ViewGroup để tạo nên giao diện
Với khái niệm View và ViewGroup ở trên, các bạn có thể thấy rằng mối quan hệ của hai thành phần này giúp tạo thành một giao diện người dùng có bản chất là mộtcây phân cấp. Cây phân cấp này bao gồm các View và ViewGroup, chúngđược sắp xếp hay lồng vào nhau theo những quy tắcnhất định.
Ví dụ ta có một giao diện một ứng dụng đơn giản như sau:
Giao diện trên gồm hai Button và bốn CheckBox. Cấu trúc các views cho giao diện này có thể như sau:
ThS. Bùi Trung Úy 49 View gốc là một RelativeLayout chứa hai layout khác là LinearLayout (chứa hai Button) và TableLayout (chứa bốn CheckBox). Chúng ta cũng có thể thể hiện cấu trúc trên theo dạng cây như sau: