Панель приложения не изменяется в зависимости от фрагмента в компоненте навигации - PullRequest
1 голос
/ 11 декабря 2019

В моем приложении я использую компонент навигации. Я использовал только одну активность и пару Fragment.MainActivity размещает весь фрагмент. я установил пользовательский AppBar в MainActivity. я хочу изменить AppBar для определенного Fragment.to сделать это, вот мой код

public class MessageFragment extends Fragment {
private FragmentMessageBinding messageBinding;
private ChatActionBarBinding barBinding;
ActionBar actionBar;

public MessageFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    messageBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_message, container, false);
    return messageBinding.getRoot();

}

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    actionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayShowCustomEnabled(true);
    actionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
    barBinding = DataBindingUtil.inflate(layoutInflater, R.layout.chat_action_bar, null, false);
    actionBar.setCustomView(barBinding.getRoot());

}
}

, когда я перехожу к этому перкулярному фрагменту AppBar изменяется, как и ожидалось. НоПроблема в том, что когда я нажимаю кнопку «Назад» или перехожу к другому фрагменту, панель приложений остается прежней. Она не изменяется в зависимости от фрагмента. Вот скриншот моего приложения.

есть ли решение?

this is the particular fragment

The App bar shows here comes from previous fragment.when user press the back button

should look like this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...