A exibição de fragmento no ViewPager não é restaurada ao retomar
Eu tenho a instalação das guias do ActionBar. É composto por 4 abas. Está tudo bem até eu me afastarTabbedFragment
e voltando.
Crio guias como esta:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final ActionBar actionBar = getActionBar();
tabs = Lists.newArrayList();
tabs.add(new TabDefinition<>("Tab 1"));
tabs.add(new TabDefinition<>("Tab 2"));
tabs.add(new TabDefinition<>("Tab 3"));
tabs.add(new TabDefinition<>("Tab 4"));
for (TabDefinition tab : tabs) {
actionBar.addTab(actionBar.newTab()
.setText(tab.text)
.setTag(tab.tag)
.setTabListener(this));
}
}
E inicialize o adaptador assim:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.paging_tab_container, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
viewPager = (ViewPager) view.findViewById(R.id.pager);
viewPager.setAdapter(new FragmentStatePagerAdapter(getFragmentManager()) {
@Override
public Fragment getItem(int position) {
return tabs.get(position).fragment;
}
@Override
public int getCount() {
return tabs.size();
}
});
viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
getActionBar().setSelectedNavigationItem(position);
}
});
viewPager.setCurrentItem(getActionBar().getSelectedNavigationIndex(), true);
}
Ao retornar aoTabbedFragment
guia selecionada e 1 ao lado dela não teriam nenhum conteúdo. Apenas vista vazia. Mas se eu selecionar o conteúdo atual + 2 fragmento será carregado. E, em seguida, retornando ao primeiro fragmento, o conteúdo é recarregado.
Por exemplo, tenho guias A, B, C, D. Antes de sairTabbedFragment
Eu selecionei a guia A. Ao retornar paraTabbedFragment
Ainda estou na guia A, mas está vazio. O mesmo acontece com a guia B.
Mas, ao selecionar a guia C, ela é criada e carregada. Voltando à guia A, ele é recriado.
Qual poderia ser o problema aqui?