Android: View và ViewGroup trong Android

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

1. View

Các đối tượng View được sử dụng một cách đặc biệt cho việc vẽ nội dung lên màn hình của thiết bị Android. Mặc dù bạn có thể nhanh chóng khởi tạo View trong code Java của bạn, nhưng cách dễ nhất để sử dụng chúng là thông qua một tập tin layout XML. Một ví dụ về điều này có thể được nhìn thấy khi bạn tạo một ứng dụng trong "Hello World" đơn giản trong Android Studio. Tập tin layout là một tập tin có tên là activity_main.xml, trông đại loại như thế này:

<TextView
  android:id="@+id/hello_world"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="Hello World!"/>

Ví dụ trên cho thấy một loại View sẽ được hiển thị trên màn hình. Các thuộc tính layout_width và layout_height nói lên rằng View sẽ chiếm càng nhiều không gian trên màn hình nếu cần thiết để hiển thị văn bản "Hello World!". Thuộc tính id là cách để View có thể được tham chiếu trong các code Java của bạn như thế này:

setContentView(R.layout.activity_main);

TextView textView = findViewById(R.id.hello_world);

Mặc dù bạn có thể thiết lập thuộc tính cho một View trong XML, nhưng bạn cũng có thể thay đổi các thuộc tính trong code Java của bạn, chẳng hạn như thay đổi văn bản của TextView ở trên.

textView.setText("Đã có s thay đi ca View");

Code ở trên cập nhật văn bản của TextView thành "Đã có sự thay đổi của View".

Bây giờ thì bạn đã biết cách làm việc với các đối tượng View cơ bản, hãy lướt qua một số loại View khác nhau có sẵn trong Android SDK.

Dưới đây là danh sách các View dùng để hiển thị:

TextView

Đây là View mà chúng ta sử dụng trong ví dụ trên. Công việc chính của TextView là hiển thị văn bản trên màn hình một ứng dụng Android. Mặc dù điều này có vẻ như là một nhiệm vụ đơn giản, nhưng lớp TextView chứa logic phức tạp cho phép nó hiển thị mã đánh dấu, siêu liên kết, số điện thoại, email và các chức năng hữu ích khác.

ImageView

Như tên của nó, ImageView được thiết kế đặc biệt để hiển thị hình ảnh trên màn hình. Điều này có thể được sử dụng để hiển thị các tài nguyên được lưu trữ trong ứng dụng hay để hiển thị hình ảnh được tải xuống từ internet.

Các control nhập liệu

Một số đối tượng View được sử dụng không chỉ để hiển thị nội dung cho người dùng. Đôi khi bạn cần phải có một số trường nhập liệu để kiểm soát các ứng dụng của bạn. May mắn thay, Android cung cấp một số lớp con đặc biệt của View cho mục đích này.

Button

Lớp Button là một trong các control cơ bản nhất có sẵn trong ứng dụng. Nó lắng nghe sự kiện nhấp của người dùng và gọi một phương thức trong code của bạn vì vậy mà bạn có thể phản hồi một cách thích hợp.

Switch và CheckBox

Các lớp Switch và CheckBox có một trạng thái hoạt động và không hoạt động có thể được bật tắt. Điều này rất hữu ích cho việc thay đổi các cài đặt trong ứng dụng. Các phiên bản tương thích với Material Design có sẵn thông qua thư viện hỗ trợ AppCompat.

EditText

EditText là lớp con của View và là một sự mở rộng của lớp TextView và cho phép người dùng cập nhật văn bản thông qua một bàn phím.

Adapter View

Trong khi mỗi ví dụ View ở trên là những phần tử đơn lẻ, nhưng đôi khi bạn muốn hiển thị một tập hợp các phần tử. Các lớp View này yêu cầu sử dụng một Adapter để xử lý việc hiển thị giao diện người dùng thích hợp cho mỗi phần tử trong một bộ sưu tập.

ListView

Lớp ListView được sử dụng để hiển thị một tập hợp các phần tử trong một View dài, một cột, có thể cuộn. Mỗi mục phần tử riêng lẻ có thể được chọn để hiển thị chi tiết hoặc thực hiện một hành động liên quan đến phần tử đó.

GridView

Tương tự như lớp ListView, lớp GridView nhận một Adapter và hiển thị các phần tử trên nhiều cột trên màn hình.

Spinner

Lớp cuối cùng trong bộ lớp View mà bạn sẽ được học trong hướng dẫn này là lớp Spinner. Nó chấp nhận một Adapter và hiển thị các phần tử trong trình đơn thả xuống khi Spinner được nhấp vào để cho một phần tử có thể được lựa chọn bởi người dùng.

2. ViewGroup

Một ViewGroup là một đối tượng vô hình được sử dụng để chứa các đối tượng View và ViewGroup khác để tổ chức và kiểm soát layout của một màn hình. 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 View (xem bên dưới) do đó bạn có thể tạo các layout phức tạp hơn. Có nghĩa là, bạn càng giữ cho layout đơn giản thì hiệu năng hoạt động của nó càng cao.

Ví dụ về cấu trúc View

Các đối tượng ViewGroup có thể được khởi tạo theo cùng một cách như là các phần tử View tiêu chuẩn trong XML hoặc code Java.

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

  <Button
    android:id="@+id/btn1"
    android:layout_width="140dp"
    android:layout_height="wrap_content"
    android:text="@string/start_service"
    android:textSize="14sp"
    android:textStyle="bold"/>

  <Button
    android:id="@+id/btn2"
    android:layout_width="140dp"
    android:layout_height="wrap_content"
    android:text="@string/pause_service"
    android:textSize="14sp"
    android:textStyle="bold"/>

  <Button
    android:id="@+id/btn3"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:text="@string/stop_service"
    android:textSize="14sp"
    android:textStyle="bold"/>

  <TextView
    android:id="@+id/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"/>

</LinearLayout>

Trong khi tất cả các lớp ViewGroup thực hiện cùng một nhiệm vụ, thì mỗi lớp con của ViewGroup tồn tại cho một mục đích cụ thể. Hãy cùng tìm hiểu một số lớp trong đó.

LinearLayout

LinearLayout tồn tại để hiển thị các phần tử theo một thứ tự xếp chồng lên nhau theo chiều ngang hoặc chiều dọc. LinearLayout cũng có thể được sử dụng để gán weight cho các phần tử View con để các phần tử được cách khoảng trên màn hình theo tỉ lệ tương ứng với nhau.

RelativeLayout

RelativeLayout cho phép bạn hiển thị các phần tử trên màn hình tương đối với nhau, cung cấp nhiều tính linh hoạt hơn và tự do trong cách layout của bạn xuất hiện so với LinearLayout.

FrameLayout

Được thiết kế để hiển thị một View con tại một thời điểm, FrameLayout vẽ các phần tử trong một ngăn xếp và cung cấp một cách đơn giản để hiển thị một phần tử trên các kích cỡ màn hình khác nhau.

ScrollView

Một lớp mở rộng của FrameLayout, lớp ScrollView xử lý việc cuộn các đối tượng con của nó trên màn hình.

ViewPager

Được sử dụng để quản lý nhiều View trong đó chỉ hiển thị một View tại một thời điểm, lớp ViewPager chấp nhận một Adapter và cho phép người dùng vuốt về bên trái và bên phải để thấy tất cả các phần tử View có sẵn.

RecyclerView

Lớp RecyclerView là một lớp con của ViewGroup, nó liên quan đến các lớp ListView và GridView và nó được cung cấp bởi Google thông qua thư viện hỗ trợ RecyclerView cho các phiên bản Android cũ hơn. Lớp RecyclerView đòi hỏi việc sử dụng các mẫu thiết kế view holder để tái sử dụng phần tử một cách có hiệu quả và nó hỗ trợ việc sử dụng một LayoutManager, một thành phần trang trí, và một phần tử động để làm cho thành phần này vô cùng linh hoạt và đơn giản.

CoordinatorLayout

Được thêm gần đây vào thư viện hỗ trợ thiết kế, lớp CoordinatorLayout sử dụng một đối tượng Behavior để xác định cách các phần tử View con sẽ được sắp xếp và di chuyển khi người dùng tương tác với ứng dụng của bạn.

3. View tuỳ biến

Mặc dù có nhiều lớp View và ViewGroup để bạn có thể sử dụng trong ứng dụng của bạn, nhưng đôi khi bạn muốn tạo ra một cái gì đó mới để phù hợp với nhu cầu của bạn. Trong trường hợp này, bạn có thể tạo ra một lớp Java mới thừa kế View hoặc ViewGroup, tùy thuộc vào những gì bạn cần. Việc tạo ra một lớp con tuỳ biến của View vượt khỏi phạm vi của bài này, nhưng bạn có thể tìm thêm thông tin trong bài viết Tạo Custom View.

Tổng kết

Trong hướng dẫn này, bạn đã được học về một trong các thành phần cơ bản nhất của Android, các Layout và View. Nắm vững các thành phần này của Android hoạt động như thế nào, bạn sẽ khám quá thêm những điều mới lạ về chúng khi bạn tiếp tục làm việc với nền tảng Android và bạn sẽ tìm thấy những cách thức mới để thực hiện những điều tuyệt vời bằng cách sử dụng chúng trong các dự án của bạn.

» Tiếp: Tạo Custom View
« Trước: Cài đặt trình điều khiển USB OEM
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!