Neler oluyor: İlk iki ViewPager sayfası güzel şekilde yüklendi (ViewPager otomatik olarak geçerli sayfadan + -1 yükler). Bunları geçtiğinizde, sonraki sayfalar gösterilmez. Aşağıdaki sorunun GIF demo.ViewPager + PagerAdapter, ilk iki öğeden sonra boş sayfaları gösterir
ayıklama bilgileri: olan örneğinin oluşturulmasını sayfalar (aşağıdaki kodu bakınız) başarıyla (Log mesajları ile teyit) ViewPager ArrayList<ItemInfo>mItems
eklenir. Ben ayıklama = true sette (AOSP içinde mmm frameworks/support/v4/
) ile android.support.v4
kütüphane recompiled ve HARİÇ mükemmel çalışıyor her şeyi gösterir: ViewPager içinde
onLayout ve onMeasure yöntemleri ilk iki görüş yüklendikten sonra çağrılan durdurun. Bu, diğer sayfaların siyah olduğu anlamına gelir, çünkü asla olmaması gerektiği gibi ayarlanmış & ölçülmemiştir. Bir düzen ağacı yenilemesini boşuna zorlamak için farklı noktalara farklı requestLayout() çağrıları eklemeyi denedim.
Arka plan: Inflater.inflate aracılığıyla oluşturulan bir ViewPager'ım var ve view.findViewById (R.layouy.myid) aracılığıyla bulundu. Doğrudan eski Galeri görünümü yerine gelen ve test amaçlı PagerAdapter instantiateItem (toplama, pozisyon) basitçe yapar:
@Override
public Object instantiateItem(View collection, final int position) {
final TextView tv = new TextView(collection.getContext());
tv.setText("Looking at page " + position);
tv.setTextColor(Color.WHITE);
tv.setBackgroundColor(Color.rgb((int)(Math.random()*100), (int)(Math.random()*100), (int)(Math.random()*100)));
tv.setTextSize(22);
((ViewPager) collection).addView(tv);
return tv;
}
Herhangi bir fikir? PageView'ın ebeveynlerinde bazı gizem ayarlarının bir şekilde devre dışı bırakılması gibi görünüyor. Page 11
[GIF sorunundan kaçınılması (imgur)] (http://i.stack.imgur.com/YPsJr.gif) –
Bağdaştırıcınızda 'destroyItem 'uyguladınız mı? http://developer.android.com/reference/android/support/v4/view/PagerAdapter.html#destroyItem(android.view.ViewGroup, int, java.lang.Object) –
Evet, tam olarak önerildiği gibi: 'destroyItem (Görünüm c, int p, Nesne v) {((ViewPager) c) .removeView ((Görünüm) v); } 've benim test uygulamasında mükemmel çalışıyor. –