#java #android #android-fragments
Вопрос:
Я пытаюсь реализовать боковую панель навигации (меню гамбургеров). Я хочу иметь возможность выбрать новый фрагмент для просмотра в этом меню, а затем нажать кнопки на этом фрагменте, чтобы перейти к другому фрагменту (не в списке меню гамбургеров).
Я следовал за гидом (https://www.youtube.com/watch?v=bjYstsO1PgI), но он не показывает второй шаг перенаправления на другой фрагмент.
Я продолжаю получать сбой всякий раз, когда нажимаю кнопку, которая перенаправляет на другой фрагмент, если он был загружен меню гамбургера.
Строка, которую я использую для рендеринга из меню гамбургеров, — это:
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new FirstFragment()).commit();
Это вызывается следующим прослушивателем событий:
NavigationView navigationView = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
и я получаю эту ошибку всякий раз, когда нажимаю кнопку, чтобы перейти к «другому» фрагменту.
Navigation action/destination com.example.testApp:id/action_FirstFragment_to_submitScreen cannot be found from the current destination Destination(com.example.testApp:id/submitScreen) label=fragment_submit_screen class=com.example.renamedTestApp.SubmitScreen
Эта ошибка отсутствует, когда я использую
<include layout="@layout/content_main"/>
чтобы загрузить первый фрагмент при запуске приложения (тот, который находится в меню гамбургера).
Какие-нибудь советы? Этот вопрос может сбить с толку, поэтому дайте мне знать, следует ли мне привести в порядок свое объяснение. Я полагаю, что ошибка может быть в том, что фрагмент не полностью загружен, возможно? Если это так, то какую линию было бы лучше использовать для переключения на лету.
Ответ №1:
предоставьте какой-нибудь код
попробуйте это
FragmentManager fragmnt= getActivity().getSupportFragmentManager();
FragmentTransaction tr= fragmnt.beginTransaction();
tr.replace(R.id.YOUR,new Yourfragment());
//or tr.replace(R.id.content_frame, new Yourfragment());
tr.commit();
Комментарии:
1. Я не совсем уверен, что понимаю. Разве это не тот самый код, который я привел в своем вопросе, просто разнесенный на несколько строк?
2. Простите меня, но я не уверен, какой код вы хотели бы видеть. Я включил прослушиватель событий, который вызывает код, который я показал в своем первоначальном сообщении.
3. это кажется прекрасным ,попробуйте simplifiedcoding.net/…