Как получить кнопку возврата на панели действий с новой навигацией Jetpack

Я хочу иметь Backbutton на панели действий по умолчанию в новом приложении для навигации androidx jetpack.

Я следую инструкциям по началу работы с навигацией в Google, чтобы создать приложение для навигации, но мне не хватает кнопки Backbutton на панели действий, поэтому я добавляю в OnCreate объекта MainActivity:

        ActionBar actionbar = getSupportActionBar();
        NavController nc = Navigation.findNavController(mainFragment.getView());
        AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(nc.getGraph()).build();
        androidx.navigation.ui.NavigationUI.setupActionBarWithNavController(this,nc, appBarConfiguration); 

Теперь я вижу Backbutton в ActionBar, если я не нахожусь в стартовом основном фрагменте, но нет функции возврата, если я нажимаю эту кнопку. Обычная клавиша возврата работает нормально, но как заставить работать клавишу панели действий?

введите описание изображения здесь

Обновление: не работает от второго фрагмента к первому (главному / корневому) фрагменту. от третьего до второго фрагмента он рабочий. nav-graph


person Freudi    schedule 17.04.2019    source источник
comment
проверьте это stackoverflow.com/a/52270037/7666442   -  person AskNilesh    schedule 17.04.2019


Ответы (1)


попробуй это :-

toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //do your stuff here
            }
        });

второй вариант; -

@Override
    public boolean onSupportNavigateUp() {
        return super.onSupportNavigateUp();
        // do your stuff here
    }
person Sandeep Malik    schedule 17.04.2019
comment
оставьте комментарий, если у вас есть какие-либо вопросы - person Sandeep Malik; 17.04.2019
comment
Второй вариант вызывается только от 3 до 2 фрагментов, а не от 2 до первого. - person Freudi; 17.04.2019
comment
укажите здесь намерение для своей деятельности, где у вас есть фрагменты - person Sandeep Malik; 17.04.2019
comment
Я не знаю, что вы имеете в виду под намерением в данном случае. Вот и весь проект: - person Freudi; 17.04.2019
comment
в соответствии с вашим кодом вы не можете делать то, что хотите. перейдите по этой ссылке developer.android.com/guide/components/fragments и просмотрите несколько руководств. о переходах фрагментов. Хотя я могу помочь вам здесь ... но эта вещь очень полезна в ближайшие дни, и вы должны быть мастером в концепции фрагментов ... изучите это на практике. пока не беритесь за тяжелую задачу ... и, пожалуйста, не забудьте оценить ответ ... удачи - person Sandeep Malik; 17.04.2019
comment
Я уже читал это, я не понимаю, почему он работает без всего этого только с новым nav_graph от fragment3 до 2, но не с 2 до 1. Важным было добавление строки с appBarConfiguration, потому что она ссылается на nav-graph . Но почему он не работает на последнем домашнем шаге к корневому фрагменту? - person Freudi; 17.04.2019