Chủ đề android studio layout: Android Studio Layout là yếu tố quan trọng giúp bạn xây dựng giao diện người dùng hiệu quả trong quá trình phát triển ứng dụng Android. Bài viết này sẽ cung cấp cho bạn một hướng dẫn toàn diện, từ những kiến thức cơ bản đến các kỹ thuật tối ưu, giúp bạn làm chủ việc thiết kế layout trong Android Studio một cách dễ dàng và chuyên nghiệp.
Mục lục
Tổng hợp chi tiết về Android Studio Layout
Android Studio Layout là một phần quan trọng trong quá trình phát triển ứng dụng Android. Nó cho phép các nhà phát triển định nghĩa giao diện người dùng thông qua các thành phần trực quan như TextView, Button, ImageView và nhiều thành phần khác. Dưới đây là các khái niệm chính và cách sử dụng layout trong Android Studio.
1. Các loại Layout cơ bản trong Android
- LinearLayout: Thành phần giao diện được sắp xếp theo một hàng ngang hoặc dọc. Các yếu tố được đặt theo thứ tự xuất hiện.
- RelativeLayout: Các thành phần được định vị dựa trên các thành phần khác trong giao diện.
- ConstraintLayout: Cung cấp sự linh hoạt trong việc sắp xếp và giới hạn các thành phần UI, thích hợp cho các giao diện phức tạp.
- FrameLayout: Được sử dụng để hiển thị một view duy nhất tại một thời điểm, thường dùng cho các khung chứa.
- GridLayout: Thành phần UI được tổ chức trong một cấu trúc lưới, hữu ích khi sắp xếp nhiều đối tượng.
2. Các khái niệm quan trọng
- View: Đơn vị cơ bản nhất trong giao diện người dùng Android. Mọi thành phần trên màn hình như nút, hình ảnh, văn bản đều là một view.
- ViewGroup: Là container chứa các view khác, giúp tổ chức và quản lý bố cục giao diện.
3. Thuộc tính quan trọng của Layout
Khi làm việc với layout, có một số thuộc tính cần nắm vững:
- layout_width và layout_height: Xác định chiều rộng và chiều cao của một view.
- padding: Khoảng cách giữa viền của view và nội dung bên trong view.
- margin: Khoảng cách giữa các view với nhau.
- gravity: Xác định vị trí của nội dung bên trong view.
- weight: Chỉ định tỉ lệ không gian mà một view chiếm trong
LinearLayout.
4. Sử dụng XML để định nghĩa Layout
Các layout trong Android thường được định nghĩa bằng XML để dễ dàng kiểm soát và chỉnh sửa:
5. Công cụ hỗ trợ trong Android Studio
- Design View: Cho phép kéo thả các thành phần giao diện trực tiếp mà không cần phải viết mã XML thủ công.
- Component Tree: Hiển thị cấu trúc phân cấp của các view và viewgroup, giúp dễ dàng quản lý các thành phần trong layout.
- Attributes Panel: Cung cấp giao diện trực quan để chỉnh sửa các thuộc tính của view mà không cần viết mã.
6. Các lưu ý khi thiết kế layout
- Đảm bảo giao diện tương thích với nhiều kích thước màn hình khác nhau bằng cách sử dụng dp và sp thay vì px.
- Sử dụng ConstraintLayout để tạo giao diện linh hoạt hơn, giúp tránh việc bố cục bị vỡ khi hiển thị trên các thiết bị có kích thước màn hình khác nhau.
- Tối ưu hóa hiệu suất của layout bằng cách giảm bớt số lượng view không cần thiết, đặc biệt là khi sử dụng các view lồng nhau.
7. Tính năng xem trước giao diện
Android Studio cung cấp tính năng Preview cho phép bạn xem trước giao diện trên nhiều kích thước màn hình khác nhau, bao gồm cả điện thoại và máy tính bảng.
8. Công cụ hỗ trợ tạo layout nâng cao
Đối với các layout phức tạp, bạn có thể sử dụng ConstraintLayout và công cụ Layout Editor trong Android Studio để tạo các bố cục tinh vi mà vẫn đảm bảo hiệu suất tốt cho ứng dụng.
9. Kết luận
Android Studio Layout là một phần quan trọng trong việc phát triển ứng dụng Android. Nắm vững cách sử dụng các loại layout, hiểu rõ cách hoạt động của chúng, và sử dụng đúng công cụ sẽ giúp bạn tạo ra những ứng dụng có giao diện thân thiện và hiệu quả.

Tổng Quan về Android Studio Layout
Trong Android Studio, **layout** là thành phần cơ bản để xây dựng giao diện người dùng cho ứng dụng. Nó định nghĩa cách các phần tử (widget) như TextView, Button, và ImageView được sắp xếp trên màn hình. Layout giúp lập trình viên kiểm soát cách hiển thị giao diện cho các thiết bị khác nhau, đảm bảo ứng dụng thân thiện với người dùng và hoạt động hiệu quả trên mọi kích thước màn hình.
Các loại Layout phổ biến
- LinearLayout: Sắp xếp các phần tử theo chiều ngang hoặc dọc.
- RelativeLayout: Đặt các phần tử dựa vào vị trí của phần tử khác.
- ConstraintLayout: Cho phép sắp xếp giao diện phức tạp một cách linh hoạt và tối ưu hiệu năng.
- FrameLayout: Hiển thị các phần tử chồng lên nhau, thường được dùng cho các giao diện đơn giản.
Ưu và nhược điểm của Layout trong Android
- LinearLayout: Đơn giản, dễ sử dụng, nhưng khi chứa nhiều phần tử có thể gây tốn tài nguyên.
- RelativeLayout: Hỗ trợ giao diện linh hoạt, nhưng có thể trở nên phức tạp khi thiết kế.
- ConstraintLayout: Cung cấp hiệu năng cao nhưng đòi hỏi kiến thức chuyên sâu để sử dụng hiệu quả.
Cách tổ chức Layout hiệu quả
Một trong những điểm quan trọng khi thiết kế giao diện là tối ưu hóa layout để ứng dụng có thể chạy mượt mà trên nhiều loại màn hình khác nhau. Điều này bao gồm việc sử dụng hợp lý các loại layout và kết hợp chúng khi cần. Ví dụ, trong một giao diện phức tạp, bạn có thể dùng LinearLayout để bố trí các nút theo hàng ngang, nhưng dùng ConstraintLayout để kiểm soát bố cục chính của ứng dụng.
Các Loại Layout trong Android Studio
Trong Android Studio, layout được sử dụng để xác định cách sắp xếp giao diện người dùng (UI) trong ứng dụng. Mỗi loại layout có mục đích và cách sử dụng riêng, giúp lập trình viên dễ dàng bố trí các thành phần UI một cách khoa học và hợp lý. Dưới đây là một số loại layout phổ biến nhất trong Android Studio:
- LinearLayout: Sắp xếp các thành phần theo chiều dọc hoặc chiều ngang. Các view con sẽ được hiển thị lần lượt theo thứ tự khai báo.
- RelativeLayout: Sắp xếp các thành phần dựa trên vị trí tương đối giữa các view khác trong cùng một layout. Các thuộc tính như
android:layout_below,android:layout_toRightOfgiúp định vị các thành phần một cách linh hoạt. - ConstraintLayout: Một loại layout mạnh mẽ, cho phép bạn sắp xếp các view dựa trên các ràng buộc giữa chúng. Điều này giúp tạo ra các giao diện phức tạp mà không cần lồng nhiều layout khác nhau.
- FrameLayout: Dùng để chứa một hoặc nhiều view, các view sẽ chồng lên nhau. Thường dùng khi cần hiển thị một view nổi bật hoặc làm khung chứa đơn giản.
- TableLayout: Sắp xếp các view theo dạng bảng với các hàng và cột. Mỗi hàng có thể chứa nhiều ô, tạo điều kiện thuận lợi cho việc sắp xếp dữ liệu dạng bảng.
Mỗi loại layout trên đều có ưu và nhược điểm riêng, tùy vào nhu cầu và cấu trúc giao diện mà bạn có thể lựa chọn loại layout phù hợp để tạo ra giao diện ứng dụng đẹp mắt và hiệu quả.
Các Thuộc Tính Chính của Layout
Trong Android Studio, các layout không chỉ là cách bạn sắp xếp các thành phần UI mà còn là yếu tố quyết định đến trải nghiệm người dùng. Dưới đây là các thuộc tính chính của một layout mà bạn cần nắm vững:
- layout_width: Quy định chiều rộng của phần tử, có thể là các giá trị cố định như
wrap_content,match_parenthoặc một kích thước cụ thể (ví dụ: 200dp). - layout_height: Tương tự như
layout_width, thuộc tính này quy định chiều cao của phần tử trong layout. - padding: Khoảng cách bên trong giữa ranh giới của phần tử và nội dung của nó, giúp tạo khoảng trống.
- margin: Khoảng cách giữa phần tử và các thành phần lân cận, giúp định vị phần tử tốt hơn trong layout.
- gravity: Định vị nội dung của phần tử bên trong nó, ví dụ như căn chỉnh theo trung tâm hoặc theo một hướng cụ thể như trái, phải, trên, dưới.
- orientation: Thuộc tính quan trọng đối với
LinearLayout, quyết định cách các phần tử con được sắp xếp theo chiều dọc hoặc ngang. - layout_gravity: Tương tự như
gravity, nhưng nó điều chỉnh cách một phần tử được căn chỉnh trong một layout mẹ. - weight: Được sử dụng trong
LinearLayoutđể phân chia tỷ lệ chiều rộng hoặc chiều cao giữa các phần tử, giúp chúng tự động điều chỉnh kích thước. - visibility: Quyết định trạng thái hiển thị của phần tử, có thể là
visible,invisible, hoặcgone(không hiển thị và không chiếm không gian).
Những thuộc tính này là cơ sở để xây dựng và tinh chỉnh giao diện người dùng trong Android Studio, đảm bảo ứng dụng của bạn hoạt động mượt mà trên nhiều thiết bị khác nhau.

Quản lý View trong Android Layout
Quản lý View trong Android Layout là một bước quan trọng để tạo giao diện người dùng tương tác và hiệu quả trong các ứng dụng di động. View là các thành phần trực quan, như nút bấm, trường văn bản, hình ảnh,... và Layout là nơi chứa và sắp xếp các View này. Để quản lý chúng một cách hiệu quả, lập trình viên cần hiểu rõ cách sắp xếp, điều khiển và tối ưu hiệu suất của View trong từng loại Layout khác nhau.
Mỗi View trong Android đều có một tập hợp các thuộc tính nhất định, như layout_width, layout_height, và các thuộc tính như padding, margin, orientation, giúp điều chỉnh vị trí và kích thước của View bên trong Layout. Dưới đây là các bước cơ bản để quản lý View trong Android Layout.
- Thêm View vào Layout: Lập trình viên có thể thêm View vào Layout qua tệp XML hoặc mã Java/Kotlin. Mỗi View được xác định với các thuộc tính về chiều rộng, chiều cao và vị trí trong Layout.
- Điều chỉnh kích thước và vị trí: Các thuộc tính như
layout_gravity,layout_margingiúp xác định vị trí chính xác của View trong một Layout. - Sử dụng ViewGroup: Một ViewGroup là một loại đặc biệt của View, có khả năng chứa nhiều View con. Các Layout như LinearLayout, RelativeLayout, và ConstraintLayout là các ViewGroup phổ biến giúp sắp xếp các View con theo nhiều cách khác nhau.
- Phản hồi người dùng: Các View như Button, EditText có thể thêm các hành vi tương tác qua việc bắt sự kiện (event) từ người dùng, như
setOnClickListener()hoặcsetOnTouchListener()để quản lý phản hồi từ người dùng. - Quản lý hiệu suất: Khi ứng dụng có nhiều View, việc tối ưu hóa số lượng View và cách hiển thị là rất quan trọng để giữ cho ứng dụng mượt mà. Sử dụng các kỹ thuật như ViewHolder, tối ưu hóa các loại Layout và tránh lồng ghép Layout quá phức tạp sẽ cải thiện hiệu suất ứng dụng.
Với những kỹ thuật và hiểu biết về quản lý View trong Android, lập trình viên có thể tạo ra những ứng dụng thân thiện, dễ sử dụng, và hiệu quả trong việc tương tác với người dùng.
Tối Ưu Hóa Layout trong Android
Tối ưu hóa layout trong Android là một phần quan trọng để cải thiện hiệu suất và trải nghiệm người dùng. Layout không được tối ưu có thể dẫn đến việc giao diện bị chậm và tốn tài nguyên. Dưới đây là một số phương pháp giúp bạn tối ưu hóa layout trong Android Studio một cách hiệu quả.
1. Giảm số lượng View lồng nhau
Sử dụng quá nhiều view lồng nhau sẽ làm tăng độ sâu của View Hierarchy, từ đó làm chậm quá trình vẽ và layout. Bạn nên hạn chế việc sử dụng quá nhiều LinearLayout lồng nhau, đặc biệt khi sử dụng thuộc tính layout_weight, vì nó có thể dẫn đến việc các thành phần phải được đo đạc nhiều lần. Thay vào đó, hãy sử dụng ConstraintLayout để có cấu trúc phẳng hơn và tăng hiệu suất.
2. Sử dụng ConstraintLayout để tăng hiệu suất
ConstraintLayout được thiết kế để thay thế cho các layout cũ như RelativeLayout và LinearLayout nhờ khả năng tạo ra các giao diện phức tạp với ít lớp lồng nhau hơn. Bạn có thể định nghĩa các ràng buộc (constraints) giữa các view thay vì sử dụng nhiều layout lồng nhau. Điều này giúp cải thiện hiệu suất và giảm chi phí tính toán.
3. Tái sử dụng Layout với
Để tránh việc phải tạo ra các layout trùng lặp, bạn nên tái sử dụng các layout dùng chung bằng cách sử dụng thẻ . Điều này không chỉ giúp mã sạch hơn mà còn cải thiện hiệu suất khi ứng dụng được render các layout này nhiều lần. Ví dụ, nếu bạn có một thanh điều hướng hoặc panel button xuất hiện trên nhiều màn hình, bạn nên tách chúng ra thành một file XML riêng và sử dụng trong các layout khác.
4. Sử dụng thuộc tính ViewStub cho các View không cần thiết ngay lập tức
Nếu một số view không cần hiển thị ngay lập tức khi ứng dụng khởi chạy, bạn có thể sử dụng ViewStub. Đây là một placeholder để trì hoãn quá trình nạp và vẽ cho đến khi thực sự cần thiết. Điều này giúp giảm tải trong giai đoạn khởi động ứng dụng.
5. Tối ưu hóa tài nguyên và kích thước hình ảnh
Việc sử dụng các hình ảnh có kích thước lớn và không cần thiết cho mọi màn hình sẽ làm tăng bộ nhớ và thời gian tải. Bạn nên tối ưu hóa hình ảnh bằng cách chỉ cung cấp các biến thể cần thiết cho từng loại screen density. Ví dụ, nếu một số mật độ màn hình ít được sử dụng, bạn có thể bỏ qua việc tạo ra các tài nguyên đồ họa cho chúng.
6. Giảm kích thước Layout bằng layoutopt
Công cụ layoutopt trong Android Studio có thể giúp bạn phân tích và tối ưu hóa các layout phức tạp. Nó sẽ gợi ý cách đơn giản hóa cấu trúc layout và phát hiện những yếu tố không cần thiết, giúp cải thiện hiệu suất tổng thể của ứng dụng.
7. Sử dụng merge để loại bỏ các lớp layout thừa
Thẻ có thể được sử dụng để loại bỏ các lớp thừa trong các file layout. Điều này rất hữu ích khi bạn muốn tránh việc sử dụng quá nhiều layout không cần thiết, chẳng hạn khi kết hợp nhiều view trong một layout lớn hơn.
XEM THÊM:
Thiết Kế Layout Bằng XML
Trong Android, việc thiết kế layout bằng XML mang lại nhiều lợi ích như dễ quản lý, tái sử dụng, và tùy chỉnh giao diện. Mỗi layout được xác định bằng một file XML, cho phép bạn định nghĩa các thành phần giao diện một cách rõ ràng và có tổ chức.
Cấu Trúc XML Cơ Bản trong Android Layout
Một file layout XML thường bắt đầu với khai báo chuẩn sau:
Trong đoạn code trên, LinearLayout được dùng làm layout gốc, với thuộc tính orientation để sắp xếp các view theo chiều dọc. Bên trong layout, TextView được khai báo với thuộc tính text hiển thị một chuỗi văn bản.
Các Loại Layout Phổ Biến
- LinearLayout: Sắp xếp các view con theo một hướng nhất định (ngang hoặc dọc).
- RelativeLayout: Cho phép các view con được định vị tương đối với nhau.
- ConstraintLayout: Là layout mạnh mẽ nhất, cho phép quản lý các view với độ linh hoạt cao thông qua ràng buộc.
Sử Dụng Thuộc Tính Layout
Mỗi view trong Android XML có thể có nhiều thuộc tính để điều chỉnh cách nó hiển thị và tương tác với các view khác. Dưới đây là một số thuộc tính cơ bản:
- layout_width và layout_height: Xác định kích thước của view. Các giá trị phổ biến bao gồm
wrap_contentvàmatch_parent. - padding và margin: Điều chỉnh khoảng cách bên trong và bên ngoài view.
- gravity và layout_gravity: Xác định cách nội dung của view hoặc chính view được căn chỉnh trong layout.
Phương Thức Thiết Kế Layout Bằng XML
Android cung cấp hai cách để thiết kế giao diện: bằng mã XML hoặc kéo thả qua giao diện Design Editor. Tuy nhiên, thiết kế bằng XML thường được các nhà phát triển lựa chọn vì tính trực quan và dễ kiểm soát.
Thiết kế layout bằng XML giúp tối ưu hóa hiệu suất, dễ dàng tái sử dụng code, và đảm bảo tính tương thích với nhiều kích thước màn hình khác nhau. Bên cạnh đó, việc quản lý giao diện thông qua các file XML giúp việc bảo trì và chỉnh sửa trở nên thuận tiện hơn.
Lưu Ý Khi Thiết Kế Bằng XML
- Sử dụng
includeđể tái sử dụng các phần giao diện trong nhiều layout khác nhau. - Hạn chế lồng ghép quá nhiều layout để tránh ảnh hưởng đến hiệu suất.
- Sử dụng
ConstraintLayoutkhi cần thiết kế giao diện phức tạp và tối ưu hóa không gian hiển thị.
Kết Nối Layout XML Với Code Java/Kotlin
Sau khi thiết kế giao diện bằng XML, bạn có thể kết nối layout với activity trong code Java hoặc Kotlin bằng phương thức setContentView(). Ví dụ:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
Với cách làm này, bạn có thể dễ dàng điều chỉnh và tương tác với các thành phần trong giao diện từ code.

Thiết Kế Layout Bằng Giao Diện Kéo Thả
Thiết kế layout bằng giao diện kéo thả trong Android Studio giúp các lập trình viên dễ dàng tạo ra giao diện ứng dụng mà không cần phải viết mã XML thủ công. Đây là một cách tiếp cận trực quan và thân thiện với người dùng, đặc biệt phù hợp cho người mới bắt đầu. Sau đây là hướng dẫn từng bước về cách sử dụng tính năng kéo thả để thiết kế layout.
1. Sử Dụng Công Cụ Design Editor
Design Editor là nơi bạn có thể kéo và thả các thành phần UI (User Interface) từ Palette vào màn hình thiết kế. Bạn có thể chuyển đổi giữa hai tab Design và Text để xem giao diện dưới dạng đồ họa hoặc mã XML.
- Palette: Cung cấp các thành phần UI như TextView, Button, ImageView, ... Bạn có thể kéo thả trực tiếp vào layout.
- Component Tree: Hiển thị cây cấu trúc của các view trong layout, giúp bạn quản lý các thành phần đã thêm một cách dễ dàng.
- Attributes Panel: Cho phép bạn điều chỉnh các thuộc tính của view như kích thước, màu sắc, văn bản, ...
2. Các Bước Thiết Kế Giao Diện Kéo Thả
- Mở Android Studio và tạo một project mới hoặc mở một file layout có sẵn.
- Chọn tab Design ở phía dưới của editor để chuyển sang chế độ kéo thả.
- Trên Palette, kéo một thành phần UI (ví dụ: Button) và thả vào layout trong khu vực Design View.
- Sử dụng các công cụ như Align và Resize để điều chỉnh vị trí và kích thước của thành phần vừa thả.
- Chuyển qua Attributes Panel để thay đổi các thuộc tính của thành phần như màu sắc, văn bản hiển thị, và căn lề (Margin, Padding).
- Để kiểm tra mã XML tự động sinh ra, bạn có thể chuyển qua tab Text.
3. Lợi Ích Của Thiết Kế Kéo Thả
- Tiết kiệm thời gian: Không cần viết tay các dòng mã XML phức tạp, giúp đẩy nhanh quá trình phát triển giao diện.
- Trực quan: Xem trực tiếp kết quả của việc thêm hoặc thay đổi các thành phần trên màn hình thiết kế.
- Tự động sinh mã: Mỗi thao tác kéo thả sẽ tự động sinh ra mã XML tương ứng, giúp duy trì tính đồng bộ giữa mã và giao diện.
4. Tips Sử Dụng Hiệu Quả
Để tận dụng tối đa công cụ kéo thả, bạn nên kết hợp nó với việc hiểu rõ về các loại layout như ConstraintLayout, LinearLayout, và RelativeLayout. Đặc biệt, với ConstraintLayout, bạn có thể dễ dàng tạo các ràng buộc (constraints) cho các thành phần giao diện để chúng hiển thị đúng ý định trên nhiều kích thước màn hình khác nhau.
Sử dụng Design Editor là một cách nhanh chóng và hiệu quả để xây dựng giao diện, đặc biệt khi bạn muốn thử nghiệm nhiều bố cục khác nhau mà không cần thay đổi nhiều về mã.
Lời Kết
Trong quá trình thiết kế giao diện ứng dụng Android, việc hiểu rõ và nắm vững các loại layout là vô cùng quan trọng. Mỗi loại layout như LinearLayout, RelativeLayout, hay ConstraintLayout đều có những ưu điểm riêng, phù hợp với từng tình huống cụ thể trong thiết kế giao diện.
Việc lựa chọn layout phù hợp không chỉ giúp ứng dụng của bạn hoạt động mượt mà hơn mà còn giúp cải thiện trải nghiệm người dùng, tiết kiệm tài nguyên và thời gian phát triển.
- LinearLayout: Dễ dàng sắp xếp các thành phần theo hàng ngang hoặc dọc, nhưng có thể gây ra vấn đề về hiệu suất nếu có nhiều view.
- RelativeLayout: Giúp bố trí các thành phần linh hoạt hơn, nhưng đôi khi phức tạp khi có nhiều view tương tác lẫn nhau.
- ConstraintLayout: Là lựa chọn tốt nhất cho các giao diện phức tạp, với khả năng tối ưu hóa hiệu suất và giảm số lượng view lồng nhau.
Cuối cùng, hãy luôn chú ý đến các nguyên tắc tối ưu hóa layout như giảm thiểu số lượng view lồng nhau, sử dụng hợp lý các thuộc tính weight và margin, đồng thời tận dụng sức mạnh của ConstraintLayout để thiết kế giao diện nhanh chóng và hiệu quả hơn.
Bằng việc áp dụng các kiến thức về layout trong Android, bạn sẽ có thể xây dựng những giao diện đẹp mắt, tối ưu và thân thiện với người dùng, góp phần vào sự thành công của ứng dụng của mình.

















Blender Room - Cách Tạo Không Gian 3D Tuyệt Đẹp Bằng Blender
Setting V-Ray 5 Cho 3ds Max: Hướng Dẫn Tối Ưu Hiệu Quả Render
D5 Converter 3ds Max: Hướng Dẫn Chi Tiết Và Các Tính Năng Nổi Bật
Xóa Lịch Sử Chrome Trên Máy Tính: Hướng Dẫn Chi Tiết Và Hiệu Quả
VLC Media Player Android: Hướng Dẫn Chi Tiết và Tính Năng Nổi Bật
Chuyển File Canva Sang AI: Hướng Dẫn Nhanh Chóng và Đơn Giản Cho Người Mới Bắt Đầu
Chuyển từ Canva sang PowerPoint - Hướng dẫn chi tiết và hiệu quả
Ghi Âm Zoom Trên Máy Tính: Hướng Dẫn Chi Tiết và Mẹo Hữu Ích
"Notion có tiếng Việt không?" - Hướng dẫn thiết lập và lợi ích khi sử dụng
Facebook No Ads XDA - Trải Nghiệm Không Quảng Cáo Đáng Thử
Ký Hiệu Trên Bản Vẽ AutoCAD: Hướng Dẫn Toàn Diện và Thực Hành
Tổng hợp lisp phục vụ bóc tách khối lượng xây dựng
Chỉnh kích thước số dim trong cad – cách đơn giản nhất 2024