我想從我的ViewPager適配器中替換碎片,但它似乎不工作。沒有錯誤顯示。當我調用replace(int,Fragment)方法時,它什麼也不做。你有什麼線索爲什麼它沒有工作?替換ViewPager碎片
public class PagerAdapter extends FragmentPagerAdapter {
private Vector<Fragment> mFragments;
private Stack<Fragment> mHiddenFragments;
public PagerAdapter(FragmentManager fm) {
super(fm);
mFragments = new Vector<Fragment>();
mHiddenFragments = new Stack<Fragment>();
}
// here is the replacement method I'm using
public void replace(int index, Fragment fragment) {
mHiddenFragments.push(mFragments.get(index));
mFragments.set(index, fragment);
notifyDataSetChanged();
}
public void replace(int index) {
mFragments.set(index, mHiddenFragments.pop());
notifyDataSetChanged();
}
public void add(Fragment fragment) {
mFragments.add(fragment);
notifyDataSetChanged();
public void remove(int index) {
mFragments.remove(index);
notifyDataSetChanged();
}
}
編輯: 的,我不能去工作部分是片段的去除。看來我只能刪除ViewPager中當前查看的片段。
例如:假設我有片段0 & 1 => mFragments.size()== 2
mPagerAdapter.add(new GenreListFragment());
mPagerAdapter.remove(1);
我想這不是很合適,假設我需要替換更多的碎片,我需要更一般的東西。 – mewa
但是,如果您希望每個頁面有多個片段,則可以在尋呼機適配器中創建一個「空」容器片段,然後將這些孩子添加到這些「基本」片段。 –
但是,我已經成功地爲每個頁面添加了幾個片段,但這不是我尋求的解決方案。 – mewa