Панель действий не обновляется при нажатии на кнопку BackStack из вложенных фрагментов?
У меня есть BaseFragment, который расширяет все остальные фрагменты. А базовый фрагмент OnCreate() добавляет пользовательскую панель действий в приложение. Все дочерние фрагменты обновляют кнопки панели действий и заголовок. При обратном нажатии панель действий не обновляется.
открытый абстрактный класс BaseFragment extends Fragment{
public TextView actionbarTextView;
public Button actionbarSettings;
public void updateActionbar(String title, boolean showSettings){
actionbarTextView.setText(title);
actionbarSettings.setvisibility(showSettings ? View.VISIBLE :View.GONE);
}
}
public class ChildFragment1 extends BaseFragment{
@override
onResume(){
updateActionbar("ChildFragment1",false);
}
}
public class ChildFragment2 extends BaseFragment{
@override
onResume(){
updateActionbar("ChildFragment2",true);
}
}
Вот когда я получил от childFragment1 -> childFragment2. При обратном нажатии кнопки заголовка и панели действий не обновляются.
Как я могу реализовать это, чтобы оно всегда работало? Я заменяю фрагмент, как показано ниже..
Fragment newFragment = new ExampleFragment();
FragmentTransaction transaction = getFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(true);
// Commit the transaction
transaction.commit();
1 ответ
Вам нужно позвонить getActivity().invalidateOptionsMenu();
для обновления вашего варианта меню.
документы говорит: Declare that the options menu has changed, so should be recreated. The onCreateOptionsMenu(Menu) method will be called the next time it needs to be displayed