Türkiyeiammert/ScalingLayout
With Scaling Layout scale your layout on user interaction.
🎬 Co giãn layout Android mượt như search bar Spotify — thư viện nhỏ gọn của iammert
Scale layout theo thao tác người dùng: chạm vào là bung ra, vuốt/cuộn là thu về.
ScalingLayout là một thư viện Android (Java) của tác giả iammert, giúp bạn scale (co giãn) layout theo tương tác người dùng. Ý tưởng được lấy cảm hứng từ layout của app Blinkist và thanh search bar trong app Spotify — hai ví dụ về hiệu ứng UI vừa tự nhiên vừa cuốn hút. Thư viện hỗ trợ sẵn view ScalingLayout và behavior ScalingLayoutBehavior kết hợp với CoordinatorLayout, nên bạn có thể thêm hiệu ứng mà không cần tự xử lý gesture bằng tay.
✨ Điểm nổi bật
- API 3 dòng:
expand(),collapse()vàsetProgress(float)giúp điều khiển trạng thái co giãn của view trực tiếp. - ScalingLayoutBehavior: gắn
layout_behaviorđể layout tự động scale khi user cuộn CoordinatorLayout — phù hợp tạo hiệu ứng như search bar thu gọn khi scroll. - Listener đầy đủ:
ScalingLayoutListenercung cấp callbackonCollapsed(),onExpanded()vàonProgress(float)để bạn bắt trạng thái và tiến trình theo thời gian thực. - Bo góc linh hoạt: thuộc tính
app:radiusFactor(float từ 0 đến 1) giúp bo tròn góc view — 1 là bo tròn hoàn toàn, 0 là góc vuông. - FAB behavior: demo kèm theo cho thấy hiệu ứng phóng to/thu nhỏ FAB khi cuộn — mẫu thiết kế phổ biến trong các app Material Design.
- Tích hợp đơn giản: dùng qua JitPack, chỉ thêm một dependency duy nhất (bản mới nhất 1.2.1).
- Nguồn mở: phát hành theo giấy phép Apache License 2.0, có video live demo trên YouTube.
💡 Vì sao đáng chú ý
Thư viện này nhấn mạnh vào sự đơn giản: thay vì bạn phải tự viết animation phức tạp với ValueAnimator kết hợp với chính view, ScalingLayout gói gọn toàn bộ logic scale trong một custom view và một behavior cho CoordinatorLayout. Chỉ cần khai báo trong XML là có ngay hiệu ứng tương tự những app nổi tiếng. Đặc biệt, việc cung cấp cả listener theo tiến trình (onProgress) giúp bạn tha hồ sáng tạo: làm mờ dần nội dung, đổi màu, ẩn/hiện các phần tử phụ theo đúng tiến độ co giãn — thay vì chỉ bật/tắt trạng thái.
Trường hợp sử dụng phù hợp nhất là các màn hình có thanh tìm kiếm mở rộng khi chạm hoặc FAB biến thành full-width view khi cuộn — các mẫu UI ngày càng phổ biến trong các app hiện đại. Nếu bạn đang làm app Android với CoordinatorLayout và muốn tạo hiệu ứng scale mượt mà không tốn nhiều công sức, đây là một lựa chọn rất đáng cân nhắc.
#Android #Java #OpenSource #UIAnimation #TiniX
Similar Projects
Discover other similar projects and AI models.
Flutter makes it easy and fast to build beautiful apps for mobile and beyond
Render After Effects animations natively on Android and iOS, Web, and React Native
Android - Expansion panels contain creation flows and allow lightweight editing of an element.