如何在不干扰 FragmentPagerAdapter 中的当前片段的情况下添加下一组片段?
How to add nextset of fragments without disturbing current fragments in FragmentPagerAdapter?
这是第一次添加片段的代码`
`if(mcursor==null) {
items = (ArrayList) cnews.getItems();
mcursor = cnews.getNextPageToken();
for (int i = 0; i < items.size(); i++) {
Fragment cm = ContentFragment.newInstance(i, items.get(i).getTitle(),
items.get(i).getImageuri(), items.get(i).getDate(), items.get(i).getPublsher(), items.get(i).getDescription());
frags.add(cm);
}
viewPager.setAdapter(new ContentfragmentAdapter(getSupportFragmentManager(), frags));
}else{
items = (ArrayList<News>) cnews.getItems();
mcursor = cnews.getNextPageToken();
for (int i = 0; i < items.size(); i++) {
Fragment cm = ContentFragment.newInstance(i, items.get(i).getTitle(),
items.get(i).getImageuri(), items.get(i).getDate(), items.get(i).getPublsher(), items.get(i).getDescription());
frags.add(cm);
}
在其他情况下,我想在服务器后添加更多片段 call.How 我可以在不删除旧片段的情况下更新适配器吗?
请帮助我,我是 android 开发的新手。
提前致谢。
这里的关键部分之一是您必须调用
notifyDataSetChanged()
在适配器上,以便相应地更新底层数据结构
包括触发 ViewPager 的重绘。
也不要忘记 getCount()
还必须 return 预期的元素数量(即此处没有硬编码值)
public class SectionsPagerAdapter extends FragmentPagerAdapter {
List<String> tagList;
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
tagList = new ArrayList<>();
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
return PlaceholderFragment.newInstance(tagList.get(position));
}
@Override
public int getCount() {
return tagList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return "SECTION "+(position+1);
}
public void add(int position, String key)
{
tagList.add(position, key);
notifyDataSetChanged();
}
}
这是第一次添加片段的代码`
`if(mcursor==null) { items = (ArrayList) cnews.getItems(); mcursor = cnews.getNextPageToken();
for (int i = 0; i < items.size(); i++) {
Fragment cm = ContentFragment.newInstance(i, items.get(i).getTitle(),
items.get(i).getImageuri(), items.get(i).getDate(), items.get(i).getPublsher(), items.get(i).getDescription());
frags.add(cm);
}
viewPager.setAdapter(new ContentfragmentAdapter(getSupportFragmentManager(), frags));
}else{
items = (ArrayList<News>) cnews.getItems();
mcursor = cnews.getNextPageToken();
for (int i = 0; i < items.size(); i++) {
Fragment cm = ContentFragment.newInstance(i, items.get(i).getTitle(),
items.get(i).getImageuri(), items.get(i).getDate(), items.get(i).getPublsher(), items.get(i).getDescription());
frags.add(cm);
}
在其他情况下,我想在服务器后添加更多片段 call.How 我可以在不删除旧片段的情况下更新适配器吗?
请帮助我,我是 android 开发的新手。 提前致谢。
这里的关键部分之一是您必须调用
notifyDataSetChanged()
在适配器上,以便相应地更新底层数据结构
包括触发 ViewPager 的重绘。
也不要忘记 getCount()
还必须 return 预期的元素数量(即此处没有硬编码值)
public class SectionsPagerAdapter extends FragmentPagerAdapter {
List<String> tagList;
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
tagList = new ArrayList<>();
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
return PlaceholderFragment.newInstance(tagList.get(position));
}
@Override
public int getCount() {
return tagList.size();
}
@Override
public CharSequence getPageTitle(int position) {
return "SECTION "+(position+1);
}
public void add(int position, String key)
{
tagList.add(position, key);
notifyDataSetChanged();
}
}