Переход от ящика к HomeActivity из другого фрагмента с помощью компонента навигации - PullRequest
0 голосов
/ 07 августа 2020

Я использую компоненты навигации Jetpack в своем приложении, теперь все работает нормально, у меня есть странный сценарий, когда мне нужно перейти от фрагмента-B к фрагменту-A (фрагмент хоста). но когда я запускаю свое приложение, он выдает ошибку. вот так в моем LogCat

я хочу вернуться от ChildFragment к ParenHostFragment.

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.sigitechnologies.kayakclone, PID: 10266
java.lang.IllegalStateException: View androidx.drawerlayout.widget.DrawerLayout{4f7ac98 VFE...... ......ID 0,0-0,0 #7f080138 app:id/profileDrawer} does not have a NavController set
    at androidx.navigation.Navigation.findNavController(Navigation.java:84)
    at com.sigitechnologies.kayakclone.Fragments.AccountInfo.ProfileFragment.createViewsHere(ProfileFragment.java:60)
    at com.sigitechnologies.kayakclone.Fragments.AccountInfo.ProfileFragment.onCreateView(ProfileFragment.java:48)
    at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698)
    at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:320)
    at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)
    at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2224)
    at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1997)
    at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
    at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
    at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6121)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

Как я могу это сделать? i

картинка, демонстрирующая, что я хочу делать.

Нажмите, чтобы увидеть изображение

Это мой код для навигационного контроллера и элементов navigationItemSelected.

 @Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()) {
        case R.id.search_flights_hotels:
            controller.navigate(R.id.action_profileFragment_to_homeFragment);
            break;
    }
    return true;
}

, а это я объявляю NavigationController

controller = Navigation.findNavController(view);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...