Share Giới thiệu tổng quan về ConstraintLayout

filiallion

Administrator
Staff member
Administrator
Messages
560
Points
10
Language
Tiếng Việt
Bài viết này tôi sẽ giới thiệu với các bạn về ConstraintLayout, một layout mới mà Google đã giới thiệu trong hội nghị Google I/O 2016. Mặc dù tới thời điểm tôi viết bài viết này thì ConstraintLayout không còn là mới nữa nhưng tôi vẫn biết có nhiều bạn chưa biết hoặc chưa có thông tin nhiều về kiểu layout này nên bài viết này có thể sẽ giúp ích được nhiều cho các bạn cần tìm hiểu về ConstraintLayout.

Để có thể sử dụng ConstraintLayout thì Android Studio phải là phiên bản 2.2 trở lên và các bạn cần phải tải gói thư viện SDK cho ConstraintLayout. Để có thể sử dụng hết các tính năng của trình Layout Editor thì tôi khuyên các bạn nên sử dụng phiên bản Android Studio 3. Với Android Studio 3 thì mặc định ConstraintLayout sẽ được tạo khi các bạn tạo một ứng dụng mới. Ngoài ra, Android Studio cũng cung cấp công cụ giúp các bạn chuyển đổi các dạng layout cũ trước đây sang ConstraintLayout một cách dễ dàng, nhanh chóng.

ConstraintLayout được hình thành dựa trên việc khai báo các ràng buộc giữa các thành phần trên layout (View, widget), như vậy các bạn có thể thấy ConstraintLayout khá giống với RelativeLayout nhưng ConstraintLayout mạnh hơn nhiều. Mục đích của ConstraintLayout là tăng hiệu suất ứng dụng bằng cách loại bỏ việc lồng nhau nhiều layout, điều này cũng đồng nghĩa việc thiết kế layout cũng sẽ nhanh chóng và đơn giản hơn so với các dạng layout cũ trước đây.

Mỗi thành phần bên trong layout sẽ được neo lại với các ràng buộc được chỉ định, ví dụ các bạn kéo thả một TextView vào trong layout và tạo các ràng buộc cho nó. Với TextView, các bạn có 3 loại xử lý như sau:
  • Trước tiên đó là các ràng buộc về các cạnh của TextView so với các thành phần mà các bạn neo.
  • Kích thước của TextView khi các bạn thay đổi thì các ràng buộc của nó vẫn sẽ không thay đổi giúp đảm bảo thể hiện chính xác trong layout.
  • Vị trí đường cơ sở của nội dung sẽ được canh chỉnh phù hợp với các nội dung khác mà các bạn đã khai báo ràng buộc.
Các bạn có thể tham khảo nội dung mã lệnh XML của layout sau:
XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="16dp"
        android:layout_marginTop="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        android:text="TextView"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>
Trên đây chỉ là các thông tin cơ bản mà tôi muốn gửi đến các bạn, giúp các bạn phần nào trong quá trình tìm hiểu về ConstraintLayout nói riêng và lập trình Android nói chung.
 
Top