I parçalarını sağlamak için dahili bir liste kullanan bir özel PagerFragmentAdapter
ile ViewPager
kullanıyorum. Ayar değişikliklerine dinamik olarak parça eklemek ve çıkarmak istiyorum.ekleme ve kaldırma fragmanları dinamik ViewPager
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_pager);
mAdapter = new ServicePagerAdapter(getSupportFragmentManager());
mPager = (ViewPager) findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
}
tekrar setAdapter
aramaya çalıştık ancak bir IllegalStateException (Can not perform this action after onSaveInstanceState)
elde ederiz.
nasıl amacıyla elde edebilirsiniz?
Maalesef o kadar kolay değildir. FragmentPagerAdapter Önbellekleri önbelleğe alır, özel bir PagerAdapter yaratmanız veya bazı hileler kullanmanız gerekir. – Matroska
kod örneğinizde 'ServicePagerAdapter' olduğunu belirtin - bu bir kütüphane sınıfı değil, zaten özel adaptör kullandığınızı varsaydım. Yani evet, "PagerAdapter" sınıfının özel uygulamasına ihtiyacınız var. Ana sorunuzla ilgili olarak - cevap verildiğini düşünüyorum. – HitOdessit
Öğeler kaldırılmışsa, PagerAdapter üzerinde notifyDataSetChanged() öğesini çağırmak için yeterli değildir. PagerAdapter öğesinin getItemPosition yöntemini de geçersiz kılmanız gerekir. Öğe hala varsa POSITION_UNCHANGED değerini veya kaldırılmışsa POSITION_NONE öğesini döndürün. –