✅ Cập nhật nhanh
Tính năng | Trạng thái |
---|---|
Autofill | 🆕 Mới |
Text: AutoSize & Ellipsis | 🆕 Mới |
Annotated HTML Lists | 🆕 Mới |
onLayoutRectChanged | 🆕 Mới |
animateBounds | 🆕 Mới |
Stabilized APIs | 🔒 Đã ổn định |
Deprecation: ContextualFlowRow/Column | ⚠️ Bị loại bỏ |
Core fixes & Accessibility | ✅ Cải thiện |
✍️ Autofill: Tự động điền trong Compose
Dễ dàng tích hợp autofill vào TextField
:
TextField( state = rememberTextFieldState(), modifier = Modifier.semantics { contentType = ContentType.Username }
)
✳️ Ghi dữ liệu:
- Tự động: khi người dùng điều hướng khỏi màn hình.
- Thủ công: gọi
commit()
từAutofillManager
.
📄 Xem thêm: Autofill in Compose Documentation
🆕 Text Enhancements
📏 Tự động co giãn chữ với autoSize
BasicText( text = "Hello World", maxLines = 1, autoSize = TextAutoSize.StepBased()
)
🔠 Ellipsis mới:
Hiển thị dấu ba chấm ở đầu hoặc giữa dòng:
Text(text, maxLines = 1, overflow = TextOverflow.StartEllipsis)
Text(text, maxLines = 1, overflow = TextOverflow.MiddleEllipsis)
📝 Hỗ trợ HTML nâng cao:
Giờ đây có thể hiển thị unordered list (bullet list):
Text( AnnotatedString.fromHtml( """ <ul> <li>Hello</li> <li>World</li> </ul> """ )
)
👁️🗨️ Theo dõi hiển thị với onLayoutRectChanged
Thay thế nhẹ nhàng cho onGloballyPositioned
– ít tốn tài nguyên, cho phép debounce/throttle:
Modifier.onLayoutRectChanged { rect -> // Gọi khi kích thước/hiển thị thay đổi
}
🔜 Compose 1.9 sẽ cung cấp API cấp cao hơn để theo dõi composable trên màn hình.
🌀 Animation mới với animateBounds
Dễ dàng tự động animate vị trí và kích thước khi thay đổi bên trong LookaheadScope
:
Box( Modifier .animateBounds(lookaheadScope = this@LookaheadScope)
)
🎥 Tương tự như "shared element transition" nhưng đơn giản hơn.
🔒 Ổn định API: giảm từ 172 xuống 70
Google đã giảm số lượng API gắn nhãn @Experimental
trong Compose UI/Foundation 1.8 → tăng sự ổn định cho nhà phát triển.
⚠️ Deprecation: ContextualFlowRow / Column
Các API ContextualFlowRow
và ContextualFlowColumn
đã bị deprecated do thiếu tối ưu:
👉 Khuyến nghị: copy mã nguồn cũ nếu vẫn cần sử dụng.
Trong khi đó:
- ✅
FlowRow
vàFlowColumn
đã ổn định - ❌ Tham số
overflow
củaFlow
APIs cũng đã bị loại bỏ
🔧 Cải tiến khác
- ✅ Accessibility checks trong test: dùng
enableAccessibilityChecks
- 🖼️ Dialogs full screen: giờ đây sẽ vẽ ra sau hệ thống bars
- 🔍 ClickableText testing: dễ test link với
performFirstLinkClick()
- 🌀 Custom overscroll: hỗ trợ truyền
OverscrollEffect
vào list
🛠️ Cách nâng cấp
Sử dụng BOM mới:
implementation(platform("androidx.compose:compose-bom:2025.04.01"))
⚠️ Nếu không dùng BOM, hãy nâng foundation và ui cùng lúc để tránh lỗi autofill
.
📣 Lời kết
Google tiếp tục cải thiện Compose qua phản hồi từ cộng đồng.
Hãy tiếp tục gửi báo cáo lỗi & yêu cầu tính năng qua issue tracker.
🎉 Happy Composing!