Tôi đang viết một ứng dụng cho máy tính bảng 4.0 và 4.1, mà tôi không muốn sử dụng các thư viện hỗ trợ (nếu không cần thiết) nhưng chỉ có api 4.x.
Vì vậy, nền tảng mục tiêu của tôi được xác định rất rõ ràng là:> = 4.0 và <= 4.1
Ứng dụng có bố cục nhiều ngăn (hai phân đoạn, một phân đoạn nhỏ ở bên trái, một phân đoạn nội dung ở bên phải) và một thanh tác vụ với các tab.
Tương tự như thế này:
Nhấp vào một tab trên thanh tác vụ sẽ thay đổi phân đoạn 'bên ngoài' và phân đoạn bên trong sau đó là một phân đoạn có hai đoạn lồng nhau (1. phân đoạn danh sách nhỏ bên trái, 2. phân đoạn nội dung rộng).
Bây giờ tôi đang tự hỏi phương pháp tốt nhất để thay thế các đoạn và đặc biệt là các đoạn lồng nhau. ViewPager là một phần của thư viện hỗ trợ, không có giải pháp thay thế 4.x gốc nào cho lớp này. Có vẻ như là 'không được chấp nhận' theo cảm nhận của tôi. - http://developer.android.com/reference/android/support/v4/view/ViewPager.html
Sau đó, tôi đọc các ghi chú phát hành cho Android 4.2, liên quan đến ChildFragmentManager
, điều này sẽ rất phù hợp, nhưng tôi đang nhắm mục tiêu 4.0 và 4.1, vì vậy điều này cũng không thể được sử dụng.
ChildFragmentManager
chỉ có sẵn trong 4.2
- http://developer.android.com/about/versions/android-4.2.html#NestedFragment
- http://developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager ()
Thật không may, hầu như không có bất kỳ ví dụ tốt nào hiển thị các phương pháp hay nhất cho cách sử dụng phân đoạn mà không có thư viện hỗ trợ, ngay cả trong toàn bộ hướng dẫn dành cho nhà phát triển Android; và đặc biệt là không có gì liên quan đến các đoạn lồng nhau.
Vì vậy, tôi tự hỏi: có phải đơn giản là không thể viết ứng dụng 4.1 với các đoạn lồng nhau mà không sử dụng thư viện hỗ trợ và mọi thứ đi kèm với nó không? (cần sử dụng FragmentActivity thay vì Fragment, v.v.?) Hoặc cách tốt nhất sẽ là gì?
Vấn đề mà tôi hiện đang gặp phải trong quá trình phát triển chính xác là câu này:
Thư viện hỗ trợ Android hiện cũng hỗ trợ các phân đoạn lồng nhau, vì vậy bạn có thể triển khai các thiết kế phân mảnh lồng nhau trên Android 1.6 trở lên.
Lưu ý: Bạn không thể thổi phồng bố cục thành một đoạn khi bố cục đó bao gồm một
<fragment>
. Các đoạn lồng nhau chỉ được hỗ trợ khi được thêm động vào một đoạn.
Bởi vì tôi đặt xác định các phân đoạn lồng nhau trong XML, điều này dường như gây ra lỗi như:
Caused by: java.lang.IllegalArgumentException: Binary XML file line #15: Duplicate id 0x7f090009, tag frgCustomerList, or parent id 0x7f090008 with another fragment for de.xyz.is.android.fragment.CustomerListFragment_
Hiện tại, tôi tự kết luận: ngay cả trên 4.1, khi tôi thậm chí không muốn nhắm mục tiêu nền tảng 2.x, các đoạn lồng nhau như thể hiện trong ảnh chụp màn hình là không thể thực hiện được nếu không có thư viện hỗ trợ.
(Đây thực sự có thể là một mục wiki hơn là một câu hỏi, nhưng có thể ai đó đã quản lý nó trước đây).
Cập nhật:
Một câu trả lời hữu ích có tại: Fragment Inside Fragment
ActionBar
(được Samsung tích hợp sẵn). Hãy xem xét kỹ hơn về ActionBarSherlock, nó có các tab trong ActionBar nếu còn chỗ.