Chuyển đến nội dung chính

Jetpack Compose: Container Layout

 


Khi thư viện Jetpack Compose đang được phát triển - tôi muốn xem nhanh các tùy chọn

bố cục mà chúng tôi có cho đến nay. Bắt đầu với Container Layout.


Cập nhật: Kể từ khi soạn phiên bản 0.1.0-dev08, Container Layout đã không được

dùng nữa để ưu tiên sử dụng Box - Bạn vẫn có thể đọc thông tin chi tiết về Container,

vì nó tương tự như Box - với sự khác biệt là Container chỉ có thể chứa một con.


Chúng ta đã quen thuộc với ViewGroups trong thế giới xml, ví dụ như LinearLayout,

FrameLayout, ConstraintLayout, v.v. Có các tùy chọn bố cục tương tự trong

Jetpack Compose.

Container layout là một trong những bố cục đó và có lẽ là bố cục đơn giản nhất.
Đó chỉ là container layout cho một phần tử con, tức là nó có thể chỉ có một chế
độ xem con bên trong nó.
Ưu điểm của việc sử dụng Container là bạn có thể thiết lập các thuộc tính
khác nhau trên chính container để điều chỉnh vị trí và kích thước của đứa
trẻ bên trong.

Đây là một số tùy chọn chúng tôi nhận được:

Alignment: how to position the child if the [Container] is larger than the child
Padding: the padding to be applied to the child
Width: the width to be used for the Container
Height: the height to be used for the Container
Expanded: expands the container to parent's height/width
Constraints: additional Constraints to be enforced when measuring the Container

Chúng ta hãy xem xét từng thuộc tính một.


Lưu ý: Tôi đang sử dụng Jetpack Compose phiên bản

0.1.0-dev06 tại thời điểm viết bài này.


Alignment


Có 9 cách alignment khác nhau mà chúng tôi có thể đặt cho chế

độ xem trẻ em. Bộ alignment mặc định là Center.


Nếu chúng ta có Hộp màu xanh lam 80dp x 80dp làm chế độ

xem con và container layout có kích thước xấp xỉ 220dp x 220dp,

thì việc đặt các alignment khác nhau sẽ trông giống như sau:


Padding


Một tùy chọn đơn giản để thiết lập padding.



Chúng tôi cũng có thể đặt các padding riêng lẻ cho trái, trên, phải và dưới.


Height and Width


Chúng ta có thể đặt height và width của Container một cách rõ ràng.

Điều này có thể được thực hiện theo hai cách:

  1. Sử dụng thuộc tính height và width

  2. Sử dụng công cụ sửa đổi LayoutHeight và LayoutWidth


Cả hai đều có tác dụng như nhau.


Lưu ý rằng hộp màu xanh lam (chế độ xem con) nằm ở giữa vì đó là alignment

mặc định được đặt trên Container.


Expanded


Thuộc tính này nếu được đặt thành true, sẽ mở rộng Container để khớp với

height và width của chế độ xem gốc, trừ khi được chỉ định rõ ràng. Theo mặc

định, nó được đặt thành false.



Constraints


Thuộc tính Constraints được sử dụng để đặt chiều height/width

rộng tối thiểu và tối đa trên container.



Nếu chúng ta làm điều này, container sẽ có height/width tối thiểu

khi không được mở rộng.


Khi được mở rộng - nó có height/width tối đa. Vì maxWidth

được đặt thành vô cùng (tức là match_parent), nên nó lấy

toàn bộ chiều rộng của cha nhưng đặt chiều cao thành 260dp.


Có cả phần mở rộng trợ giúp để thiết lập các ràng buộc.



Modifier


Đó là thuộc tính chung cho tất cả các bố cục / thành phần - không

thực sự hữu ích trong trường hợp Container vì nó có các thuộc

tính bổ trợ rõ ràng (height, width, padding, v.v.). Nhưng nếu bạn

muốn, bạn có thể sử dụng công cụ sửa đổi để đặt thông số bố cục.


Cú pháp của việc thiết lập các công cụ sửa đổi là:



Bạn có thể đặt bao nhiêu công cụ sửa đổi tùy thích.


Tuyên bố từ chối trách nhiệm: Vì Jetpack Compose đang trong

giai đoạn phát triển - bất kỳ API nào trong số này đều có thể

thay đổi bất kỳ lúc nào. Vì vậy, là nguồn của sự thật, vui lòng

luôn tham khảo tài liệu chính thức.


Cảm ơn bạn đã đọc - Tôi sẽ sớm trình bày phần còn lại của

layout, vì vậy hãy chú ý theo dõi. Chúc bạn viết mã vui vẻ!


Nhận xét

Bài đăng phổ biến từ blog này

Thiết kế giao diện với DotNetBar (Phần 1)

Đây là phiên bản DotNetBar hỗ trợ C# và Visual Basic https://www.dropbox.com/s/wx80jpvgnlrmtux/DotNetBar.rar  , phiên bản này hỗ trợ giao diện Metro cực kỳ “dễ thương” Các bạn load về và cài đặt, khi cài đặt xong sẽ có source code mẫu của tất cả các control. Để sử dụng được các control của DotNetBar các bạn nhớ add item vào controls box. Thiết kế giao diện với DotNetBar, giao diện sẽ rất đẹp. Link các video hướng dẫn chi tiết cách sử dụng và coding: http://www.devcomponents.com/dotnetbar/movies.aspx Hiện tại DotNetBar có rất nhiều công cụ cực mạnh, trong đó có 3 công cụ dưới đây: DotNetBar for Windows Forms Requires with Visual Studio 2003, 2005, 2008, 2010 or 2012.   DotNetBar for WPF Requires with Visual Studio 2010 or 2012 and Windows Presentation Foundation.   DotNetBar for Silverlight Requires with Visual Studio 2010 or 2012 and Silverlight. Dưới đây là một số hình ảnh về các control trong DotnetBar.   Metro User Interface  controls with Metro Tiles, toolba...

Jetpack Compose VS SwiftUI !VS Flutter

  Việc phát triển Android đã trở nên dễ dàng hơn khi các bản cập nhật liên tục đến. Sau bản cập nhật 2020.3.1, rất nhiều thứ đã thay đổi. Nhưng thay đổi chính mà tôi nghĩ hầu hết các nhà phát triển phải chờ đợi là Jetpack Compose cho ứng dụng sản xuất. Và Kotlin là lựa chọn duy nhất cho jetpack Compose, cũng là ngôn ngữ được ưu tiên. Để biết thêm chi tiết hoặc các thay đổi trên Jetpack Compose, bạn có thể truy cập vào https://developer.android.com/jetpack/compose Tương tự, IOS Development cũng cung cấp một tùy chọn để phát triển khai báo, SwiftUI. Trong IDE, không có thay đổi nào do điều này. Nhưng khái niệm gần giống với Jetpack Compose. Thay vì bảng phân cảnh, chúng tôi tạo giao diện người dùng bằng Swift. Để biết thêm chi tiết hoặc các thay đổi trên SwiftUI, hãy truy cập https://developer.apple.com/xcode/swiftui/ Hãy xem cách cả hai hoạt động bằng cách sử dụng một dự án demo. Tôi đã lấy một số ví dụ về số lần chạm tương tự của Flutter. 1. Android Jetpack Compose Chúng tôi có thể...

Announcing Flutter 2

  Phụ lục: Flutter on the web Flutter 2 on desktops, foldables, and embedded devices The growing Flutter ecosystem Dart: The secret sauce behind Flutter Flutter 2: Available now Hôm nay, chúng tôi sẽ công bố Flutter 2: một bản nâng cấp lớn cho Flutter cho phép các nhà phát triển tạo các ứng dụng đẹp, nhanh chóng và di động cho bất kỳ nền tảng nào. Với Flutter 2, bạn có thể sử dụng cùng một cơ sở mã để gửi các ứng dụng gốc cho năm hệ điều hành: IOS, Android, Windows, macOS và Linux; cũng như trải nghiệm web nhắm mục tiêu các trình duyệt như Chrome, Firefox, Safari hoặc Edge. Flutter thậm chí có thể được nhúng vào ô tô, TV và thiết bị gia dụng thông minh, mang đến trải nghiệm di động và lan tỏa nhất cho thế giới điện toán xung quanh. Mục tiêu của chúng tôi là thay đổi cơ bản cách các nhà phát triển nghĩ về việc xây dựng ứng dụng, bắt đầu không phải với nền tảng bạn đang nhắm mục tiêu mà là với trải nghiệm bạn muốn tạo. Flutter cho phép bạn tạo ra những trải nghiệm tuyệt đẹp trong đó ...