Изменить заголовок ActionBar с помощью фрагментов

  • Я использую Actionbar.
  • У меня есть Фрагмент вызова Избранное, где я сохраняю некоторые контакты в качестве избранных.
  • Когда вы нажимаете на один контакт, он переносит меня на другой фрагмент и помещает номер контакта в текст редактирования.
  • Новый фрагмент называется Передача вызовов.

Так что моя проблема в том, что когда пользователь щелкает контакт, это приводит меня к другому фрагменту, но заголовок на панели действий все еще с любимым заголовком, а не новым, как изменить этот заголовок?

Я уже пытался использовать setTitle на метод click, но все еще не работает.

Ответ 1

В вашей деятельности:

public void setActionBarTitle(String title) {
    getSupportActionBar().setTitle(title);
}

И в вашем фрагменте (вы можете поместить его onCreate или onResume):

 public void onResume(){
        super.onResume();

    // Set title bar
    ((MainFragmentActivity) getActivity())
            .setActionBarTitle("Your title");

}

Ответ 2

В вашем фрагменте

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    getActivity().setTitle("Team B");

    View rootView = inflater.inflate(R.layout.fragment_team_b, container, false);

    return rootView;
}

Ответ 3

Если вы используете навигационные компоненты из Android Jetpack. Панель действий считывает атрибут Label для имени фрагмента. Не уверен, что это правильное исправление, но если вы измените текст метки в редакторе навигации, он будет прочитан supportActionBar, настроенным в действии, в котором размещены фрагменты. Navigation Editor Attributes Tab