我有一个包含viewpager和片段(例如A,B,C,D)的布局。 在片段A中,我具有Tablayout,其中动态创建Tab的每个页面
private void setupViewPager(ViewPager viewPager) {
adapter = new ViewPagerAdapter(getActivity().getSupportFragmentManager());
for (int i = 0; i < mergelist.size(); i++) {
adapter.addFrag(new BlogFragmentContent(), mergelist.get(i).getNc_title(), mergelist.get(i).getNc_id());
viewPager.setAdapter(adapter);
}
}
当我第一次进入该布局时,它会显示视图,但是如果我转到任何其他选项卡并返回到此,则不会显示任何内容。
例如:首先我单击“片段A”(现在显示视图),然后转到“片段C”并返回到“片段A”(那里没有视图)。
答案 0 :(得分:1)
尝试一下
private void setupViewPager(ViewPager viewPager) {
adapter = new ViewPagerAdapter(getActivity().getSupportFragmentManager());
for (int i = 0; i < mergelist.size(); i++) {
adapter.addFrag(new BlogFragmentContent(), mergelist.get(i).getNc_title(), mergelist.get(i).getNc_id());
}
viewPager.setAdapter(adapter); // put this line outside for loop
}
在所有页面添加到适配器后尝试设置适配器。
答案 1 :(得分:1)
由于未通过适当的片段管理器,因此不会保留ViewPager的片段状态。
在下面用于初始化ViewPagerAdapter:
adapter = new ViewPagerAdapter(getChildFragmentManager());
编辑: 是的,将setAdapter行移到for循环之外