Saya sedang menulis aplikasi untuk tablet 4.0 dan 4.1, yang saya tidak ingin menggunakan pustaka dukungan (jika tidak diperlukan) tetapi hanya karena itu api 4.x.
Jadi platform target saya didefinisikan dengan sangat baik sebagai:> = 4.0 dan <= 4.1
Aplikasi memiliki tata letak multi-panel (dua fragmen, satu fragmen kecil di kiri, satu fragmen konten di kanan) dan bilah tindakan dengan tab.
Mirip dengan ini:
Mengklik tab pada bilah tindakan akan mengubah fragmen 'luar', dan fragmen bagian dalam adalah fragmen dengan dua fragmen bersarang (1. fragmen daftar kiri kecil, 2. fragmen konten lebar).
Sekarang saya bertanya-tanya apa praktik terbaik untuk mengganti fragmen dan terutama fragmen bersarang. ViewPager adalah bagian dari pustaka dukungan, tidak ada alternatif 4.x asli untuk kelas ini. Tampak seperti 'deprecated' dalam pengertian saya. - http://developer.android.com/reference/android/support/v4/view/ViewPager.html
Kemudian saya membaca catatan rilis untuk Android 4.2, mengenai ChildFragmentManager
, mana yang cocok, tetapi saya menargetkan 4.0 dan 4.1, jadi ini juga tidak dapat digunakan.
ChildFragmentManager
hanya tersedia di 4.2
- http://developer.android.com/about/versions/android-4.2.html#NestedFragments
- http://developer.android.com/reference/android/app/Fragment.html#getChildFragmentManager ()
Sayangnya, hampir tidak ada contoh bagus di luar sana yang menunjukkan praktik terbaik untuk penggunaan fragmen tanpa pustaka dukungan, bahkan di seluruh panduan pengembang Android; dan terutama tidak tentang fragmen bersarang.
Jadi saya bertanya-tanya: apakah tidak mungkin untuk menulis 4.1 aplikasi dengan fragmen bersarang tanpa menggunakan pustaka dukungan dan semua yang menyertainya? (perlu menggunakan FragmentActivity, bukan Fragment, dll.?) Atau apa praktik terbaiknya?
Masalah yang saya hadapi saat ini dalam pengembangan adalah pernyataan ini:
Android Support Library juga sekarang mendukung fragmen bersarang, sehingga Anda bisa mengimplementasikan desain fragmen bertingkat pada Android 1.6 dan yang lebih tinggi.
Catatan: Anda tidak bisa memekarkan tata letak menjadi fragmen jika tata letak itu menyertakan file
<fragment>
. Fragmen bertingkat hanya didukung saat ditambahkan ke fragmen secara dinamis.
Karena saya menempatkan define fragmen bersarang di XML, yang ternyata menyebabkan kesalahan seperti:
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_
Saat ini, saya menyimpulkan sendiri: bahkan pada 4.1, ketika saya bahkan tidak ingin menargetkan platform 2.x, fragmen bersarang seperti yang ditunjukkan pada tangkapan layar tidak mungkin dilakukan tanpa pustaka dukungan.
(Ini mungkin sebenarnya lebih merupakan entri wiki daripada pertanyaan, tapi mungkin orang lain telah mengelolanya sebelumnya).
Memperbarui:
Jawaban yang membantu ada di: Fragment Inside Fragment
ActionBar
(dibangun di rumah oleh Samsung). Lihat lebih dekat ActionBarSherlock, ia memiliki tab di ActionBar jika ada ruang.