Khái Niệm Widget
Bạn ít khi nghe nói đến Widget trong giao tiếp thông thường, nhất là khi trao đổi tiếng Việt giữa các lập trình viên với nhau. Nhưng trong ngôn ngữ lập trình, Widget có khái niệm rõ ràng và được sử dụng trong các tài liệu tiếng Anh đấy nhé.
Vậy thì, Widget là một thành phần của Giao Diện Người Dùng, Widget giúp hiển thị các thông tin được sắp xếp, và có thể chỉnh sửa được tới người dùng. Mỗi Widget sẽ mang một kiểu thông tin nhất định, tập hợp chúng lại với nhau chúng ta tạo nên một Giao Diện Người Dùng. @@
Đọc các dòng trên có thể khiến bạn bị lùng bùng lỗ tai, nhưng thực ra Widget rất dễ hiểu, nó chính là cái Textbox, cái Label, cái Button,… trên ứng dụng của bạn mà thôi. Để dễ hiểu hơn bạn hãy nhìn vào hình ảnh rất đẹp của một ứng dụng sau
Bạn có thể thấy:
– Một số text, như Thêm Ghi Chú, Chủ Đề
– Một số chỗ để người dùng nhập text của họ vào, như Tiêu Đề, Miêu Tả, Ghi Chú
– Một số check box, như Ăn Uống, Tham Quan, Mua Sắm
– Một số nút, như nút +, nút x
– Một số nơi để hiển thị hình ảnh
– …
Tất cả những thành phần được liệt kê ở trên đều là các Widget cả đấy, chúng được sắp đặt ở các vị trí cụ thể trên màn hình, mỗi Widget đảm nhận các vai trò khác nhau đến với sự tương tác với người dùng. Bạn thấy có dễ hiểu hơn không nào. Chúng ta sẽ làm quen với từng Widget ở bài học sau nhé, còn bây giờ hãy qua khái niệm kế tiếp.
Khái Niệm View
Bạn đã hiểu Widget là gì rồi, giờ ta sẽ tìm hiểu về khái niệm View. View thực chất là nguồn gốc để tạo nên các Widget được nói đến ở trên.
View được hiểu như là các cấu tạo giống nhau, hay nói cách khác nó là các khuôn mẫu cơ bản để làm nền tảng tạo nên Widget. Nó tương tự như khái niệm về kế thừa trong OOP ấy, trong đó View là cha còn các Widget là con kế thừa từ View đó. Do đó trong khi ở View chỉ có các thuộc tính chung nhất, thì Widget là các thể hiện khác nhau của View. Mỗi Widget chứa đựng các thuộc tính đặc thù của nó mà View hoặc các Widget khác không có. Chẳng hạn Button sẽ có các thuộc tính khác với Label, Checkbox sẽ khác Radio Button,...
Về mặt giao diện thì ở cấp độ View chỉ đơn giản là một hình chữ nhật, có kích thước rõ ràng, nằm ở đâu trên màn hình, và nhận các sự kiện tương tác với user mà thôi.
Khái Niệm ViewGroup
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 Widget, thì ViewGroup lại là nguồn gốc để tạo ra các Layout. Các layout mà chúng ta đã được học, như LinearLayout, RelativeLayout, FrameLayout, GridLayout,… Mỗi layout như một Thùng Chứa (Container) để chứa đựng các View hay các ViewGroup khác bên trong mình, các thành phần bên trong này được sắp xếp theo một quy tắc nhất định tùy theo từng loại ViewGroup.
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ột câ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ắc nhất định. Như hình minh họa dưới đây.
Để 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 tin 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>
Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCOxeYcvZPGf-mGLYSl_1LuA/videos
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com