2015-10-07 2 views
1

У меня есть активность с макетом именем «контейнер», где фрагменты надувается при помощи FragmentTransactionsФрагмент не воссоздан после popBackStack()

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE); 
transaction.replace(R.id.container, SomeFragment.newInstance()); 
transaction.addToBackStack(null); 
transaction.commit(); 

один фрагмент раздувает другой фрагмент с более двух фрагментами в TabLayout. Это делается с помощью TabLayout и ViewPager. Все работает хорошо, пока я не вытащил его из задней части.

getSupportFragmentManager().popBackStack(); 

Когда я это делаю, вкладки воссозданы и вызывается все методы жизненного цикла. Однако у них нет содержания. Кажется, что их макеты не накачаны.

У меня есть метод, называемый initUI (View v), которая называется в

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_tabs, container, false); 
    initUI(rootView); 
    return rootView; 
} 

Это делает установку для TabLayout.

private void initUI(View rootView) { 
    pager = (ViewPager) rootView.findViewById(R.id.viewPagerCollected); 
    tabLayout = (TabLayout) getActivity().findViewById(R.id.tabs); 
    pager.setAdapter(new MyPagerAdapter(getActivity().getSupportFragmentManager())); 
    tabLayout.setupWithViewPager(pager); 
    tabLayout.setVisibility(View.VISIBLE); 
} 

Опять же, этот метод называется, но, похоже, ничего не делает, когда выталкивает заднюю часть.

Что я здесь делаю неправильно? Почему Фрагмент не воссоздается должным образом, даже если вызывается onCreateView и initUI?

EDIT: В моем блоке TabsFragment каждый фрагмент имеет RecyclerView. При нажатии на один из элементов открывается другой фрагмент, отображающий подробную информацию пользователю.

Здесь пользователь может вернуться назад. При этом, TabsFragment снова отображается, но на этот раз без какого-либо контента. Кажется, что внутренние фрагменты на этот раз не раздуты.

+0

Что вы хотите точно –

+0

Получить объяснение того, что я делаю неправильно и иметь Фрагмент воссоздан правильно. Извините, если это было недостаточно ясно. Я отредактирую свой вопрос и сделаю это более ясным ... – Alex

+0

Его недостаточно ясно –

ответ

0

First Добавить к спине складывают, как это ...

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE); 
transaction.replace(R.id.container, SomeFragment.newInstance()); 
transaction.addToBackStack("YOUR_TAG"); 
transaction.commit(); 

После того, чтобы попытаться popstackback()

+0

Спасибо, но я уже это делаю. (извините, я удалил метод addToBackStack (null), прежде чем публиковать это по ошибке. – Alex

Смежные вопросы