У меня есть два фрагмента, мне нужно держать их обоих, но показывать и скрывать нажатие кнопок.findFragmentByTag всегда возвращает null при попытке получить после добавления()
Я добавил первый фрагмент с помощью:
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
mDishFragment = new DishFragment();
transaction.add(R.id.dish_fragment, mDishFragment, "DishFragment");
transaction.commit();
Первый фрагмент (DishFragment) имеет кнопку на мыши из которых код проверяет, если «OrderSummaryFragment» существует (с использованием findFragmentbyTag), если он делает, он должен показать() он еще добавляет() новый. вот код:
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
if (getFragmentManager().findFragmentByTag("OrderSummaryFragment") == null) {
System.out.println("OrderSummaryFragment not found");
transaction.add(R.id.dish_fragment, mOrderSummaryFragment,"OrderSummaryFragment");
System.out.println("Orderfragment added");
transaction.addToBackStack(null);
transaction.commit();
}else{
System.out.println("OrderSummaryFragment found");
transaction.hide(mDishFragment);
transaction.show(mOrderSummaryFragment);
transaction.commit();
}
Впервые с тех пор «OrderSummaryFragment» не существует, код добавляет один и отображается. На кнопке «OrderSummaryFragment» есть кнопка «Назад», в которой показано() вверх по первому фрагменту «DishFragment». Во второй раз, поскольку мы уже добавили «Ordersummaryfragment» ранее, findFragmentByTag должен возвращать OrderSummaryFragment, но вместо этого он возвращает null.
Примечание: Я не использую функцию replace(), поэтому я хочу повторно использовать оба этих фрагмента.
Надеюсь, кто-то может мне помочь.
Чтобы вернуться к первому фрагменту, вы должны использовать PopBackStack? –
Что такое R.id.dish_fragment? ;;;;;;; См. Мой родственный вопрос: http://stackoverflow.com/questions/24833912/refresh-fragment-ui-from-fragmentactivity –