Jetpack Compose 1.8 Có Gì Mới?
✅ 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 đó:
- ✅
FlowRowvàFlowColumnđã ổn định - ❌ Tham số
overflowcủaFlowAPIs 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
OverscrollEffectvà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!
All rights reserved