2012-01-25 33 views
17

Android 4.0 (ICS) có rất nhiều new UI guidelines tuyệt vời. Vấn đề là trong tương lai, tôi không chắc chắn cách tạo ứng dụng cho Android 4.0 và đảm bảo rằng ứng dụng trông giống/tương tự trên các thiết bị chạy Android 2.2 và 2.3.Cách làm cho ứng dụng Android 4.0 tương thích ngược?

Android compatibility librarybackwards compatible Action Bar, nhưng tôi đang tìm kiếm giải pháp cụ thể hơn để chuyển ứng dụng sau ICS sang điện thoại trước ICS.

Tôi có đi đúng hướng không? Bất cứ ai có bất cứ suy nghĩ?

+1

Bài viết được liên kết không phải là ICS cụ thể. Chỉ cần một lời khuyên chung để tuân theo các quy ước của Android khi viết mã cho Android. –

+1

Điều gì, chính xác, là một "giải pháp cụ thể hơn"? – CommonsWare

+0

Vậy ... Các thư viện và công cụ tương thích ngược của Google có cung cấp cho bạn không đủ cụ thể cho bạn không? Bạn đang mong đợi họ không làm việc hoặc những gì? –

Trả lời

21

Dưới đây là một số đề xuất.

Trước tiên, hãy chú ý đến số Android Design guidelines mới. Tôi tin rằng đây là một ý tưởng tốt, không chỉ tốt cho những lý do thiết kế rõ ràng, mà còn bởi vì nó sẽ làm cho khả năng tương thích ngược trở nên dễ dàng hơn. Ví dụ: Support Package giúp đưa các yếu tố thiết kế được đề xuất lên nền tảng cũ và các vòng quay mới của gói này có thể sẽ đưa nó vào sự liên kết chặt chẽ hơn với các nguyên tắc thiết kế mới nhất.


Thứ hai, sử dụng fragments. Ngay cả khi bạn không nghĩ mình cần nhiều mảnh vỡ ngay bây giờ, chúng là tương lai của thiết kế Android và số lượng Android màn hình lớn có khả năng phát triển rất nhanh. Và mặc dù họ thêm một số phức tạp hơn, tôi nghĩ rằng họ khuyến khích thiết kế tốt bằng cách tách quan điểm từ hoạt động.

Cho phép sử dụng các đoạn qua Support Package (còn được gọi là thư viện tương thích). Điều này là khá đơn giản và tôi đã không gặp phải bất kỳ vấn đề làm điều này. Chỉ cần đảm bảo rằng hàng nhập của bạn trông giống như sau:

import android.**support.v4**.app.Fragment; 

để bạn nhận chúng từ gói hỗ trợ thay vì gọi trực tiếp ICS API gốc.


Thứ ba, bật thanh tác vụ ICS/HC sử dụng các chủ đề như được mô tả trong tài liệu. Lưu ý rằng điều này không cung cấp cho ứng dụng của bạn một thanh tác vụ trên nền tảng Pre-Honeycomb. Đối với điều đó, bạn cần phải sử dụng một cái gì đó như ActionBarSherlock hoặc mẫu ActionBarCompat. Cả hai đều là giải pháp tốt nhưng chúng thêm vào sự phức tạp của ứng dụng của bạn. Không có thanh hành động nào trong bản rev hiện tại của gói hỗ trợ, và điều này rõ ràng là do các vấn đề kỹ thuật, nhưng tôi nghi ngờ rằng họ đang cố gắng giải quyết những vấn đề đó.

Vì vậy, nếu bạn muốn giữ đơn giản, hãy xem xét việc ứng dụng của bạn có thanh tác vụ trên ICS & HC là hợp lý và không có thanh tác vụ trên các nền tảng trước đó. Trên thực tế, Android Dev blog có một bài đăng trong vài ngày qua tập trung vào việc quản lý các menu và các mục hành động trong những trường hợp này. Ngoài ra, hãy xem xét việc thêm thanh hành động trước Honeycomb vào ứng dụng của bạn sau này (ví dụ: sử dụng mã từ mẫu ActionBarCompat) sẽ không tệ như vậy - dễ dàng hơn nhiều, theo ý kiến ​​của tôi, sau đó làm lại mã của bạn cho các đoạn sau này. Quay lại đầu trang

Cuối cùng, lưu ý rằng bạn sẽ cần phải sử dụng một SDK gần đây để bạn có thể tham khảo các yếu tố như các theme holo (đối với actionbar ICS) và các yếu tố showAsAction="ifRoom", vì vậy biểu hiện của bạn sẽ bao gồm một cái gì đó như:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" /> 
+0

Cảm ơn bài đăng chi tiết. Bạn đã liên kết với 3 bài viết mà tôi đã liên kết trong câu hỏi của tôi. Tôi vẫn gặp sự cố với ActionBar. Làm thế nào để tôi nhận được một ActionBar được chia nhỏ để hiển thị trên các thiết bị trước ICS? –

+1

Tôi không biết câu trả lời cho câu hỏi đó - theo bài đăng của tôi, tôi đã sử dụng các đoạn, nhưng không phải là thanh tác vụ, trên các thiết bị trước ICS. – Tom

+0

giải pháp tốt nhất IMHO là ActioBarSherlock. hỗ trợ từ 2.x đến 4.x, bao gồm mọi thứ !!! – Paschalis

Các vấn đề liên quan