Cannot Remove Fragment From Viewpager, Why?
I must be missing something but I cannot remove a fragment from my ViewPager. I store the page titles in an ArrayList: Part of ViewPagerActivity.java (which is a FragmentActivity,
Solution 1:
I had the same problem, the only solution I found was to set the adapter again after removing the fragment like this :
@OverridepublicvoidonClick(View v) {
ViewPagerActivity.mEntries.remove(4);
pager.setAdapter(mPagerAdapter);
}
UPDATE : YOU DON'T NEED TO SET THE ADAPTER AGAIN. Here some methods of my PagerAdapter, you need probably to do some modifications to use it as FragmentPagerAdapter
To remove views :
publicstaticvoiddeleteChildren(int pStart) {
List<ViewInfo> viewToRemove = new ArrayList<ViewInfo>();
for (int iView = pStart+1; iView < _views.size(); iView++) {
viewToRemove.add(_views.get(iView));
}
if (viewToRemove.size() != 0) {
_views.removeAll(viewToRemove);
}
}
@Override
publicvoiddestroyItem(View pView, int pIndex, Object pObject) {
((ViewPager) pView).removeView((View)pObject);
}
Override getItemPosition(Object pObject) :
@Override
public int getItemPosition(Object pObject) {
intpos = 0;
for (ViewInfo iView : _views) {
if (iView.mView == (View)pObject) {
break;
}
pos++;
}
returnpos;
}
Refresh all views :
publicstaticvoidrefreshAdapterViewPager() {
_pagerAdapter.notifyDataSetChanged();
}
Solution 2:
The problem is the FragmentStatePagerAdapter, which reclaims the gone-from-view fragments. Even if you create a new one. Try using the FragmentPagerAdapter instead, which makes a fresh start on instantiating it.
Post a Comment for "Cannot Remove Fragment From Viewpager, Why?"