रीसाइक्लिंग व्यू के साथ फ्रैगमेंट व्यूपेजर के अंदर समस्या हो रही है। डुप्लिकेट रीसाइक्लिंग व्यू ओवरलैप्ड होता है जब स्वाइप करने के बाद टुकड़े फिर से बन जाते हैं। मैं व्यूपेजर, फ्रैगमेंट, फ्रैगमेंटस्टेट पेजर एडाप्टररीसाइक्लिंग व्यू के साथ डुप्लिकेट फ्रैगमेंट्स
Pic 1 का उपयोग कर रहा हूं: पहली बार रीसाइक्लर व्यू ठीक है।
Pic 2: एकाधिक टुकड़ों को स्वाइप करने के बाद और फिर उसी टुकड़े पर वापस स्वाइप करने के बाद स्क्रॉल करते समय डुप्लिकेट टुकड़े ओवरलैप हो जाते हैं।
FragmentStatePagerAdapter
class SlidingFragmentPagerAdapter extends FragmentStatePagerAdapter {
SparseArray<FragmentMain> registeredFragments = new SparseArray<FragmentMain>();
FragmentManager fm;
public SlidingFragmentPagerAdapter(FragmentManager fm) {
super(fm);
this.fm = fm;
}
@Override
public Fragment getItem(int position) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1 * (FragmentViewPager.MAX_PAGE - position - 1));
return FragmentMain.newInstance(position + "", cal.getTime());
}
@Override
public int getCount() {
return MAX_PAGE;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
FragmentMain fragment = (FragmentMain) super.instantiateItem(container, position);
registeredFragments.put(position, fragment);
return fragment;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
registeredFragments.remove(position);
super.destroyItem(container, position, object);
}
public FragmentMain getRegisteredFragment(int position) {
return registeredFragments.get(position);
}
}
का उपयोग कर ViewPager का उपयोग
mViewPager = (ViewPager) view.findViewById(R.id.viewpager);
rootView.findViewById(R.id.img_floating_btn2);
mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs);
mSlidingTabLayout.setDistributeEvenly(true);
adapter = new SlidingFragmentPagerAdapter(getFragmentManager());
mViewPager.setAdapter(adapter);
mViewPager.setCurrentItem(MAX_PAGE);
mSlidingTabLayout.setViewPager(mViewPager);
नोट मैंने mViewPager.setOffscreenPageLimit (adapter.getCount()) का उपयोग करने का प्रयास किया; Buti में ViewPager
क्या आप टुकड़े को नष्ट कर रहे हैं क्योंकि वे पेजर छोड़ते हैं? –
मैं उन्हें नष्ट नहीं कर रहा हूं। – touchchandra
मुझे लगता है कि आप उस व्यूपार्जर को एक टुकड़े में उपयोग कर रहे हैं, जिसमें आप एडाप्टर को तुरंत चालू करते समय getFrmentManager() के बजाय getChildFragmentManager() का उपयोग करते हैं। – Luksprog