Компонент Nav, немедленно вызванный, навигация к месту назначения вызывает ошибку - PullRequest
0 голосов
/ 19 ноября 2018

Навигация в методе onCreate выглядит следующим образом:

override fun onCreate(savedInstanceState: Bundle?) {
 super.onCreate(savedInstanceState)
 setContentView(R.layout.magic_mile_host)
 setSupportActionBar(toolbar_start_test)
 supportActionBar?.setDisplayHomeAsUpEnabled(true)
 supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_arrow_back_black_24dp)
 navController = findNavController(R.id.nav_host_magic_mile)
 navigateToMyTests()
}

Вот моя navigateToMyTests() реализация

navController.navigate(R.id.myTestsFragment)

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

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

1 Ответ

0 голосов
/ 10 декабря 2018

В вашем случае, когда речь идет об установке начального пункта назначения, лучше изменить его, когда это необходимо, используя следующую строку кода: navController.getGraph().setStartDestination(int id); Еще один момент, на который следует обратить внимание, это вызов методов навигации внутри onCreate() в вашемАктивность рискованна, так как navHost и FragmentManager могут быть еще не готовы.Убедитесь, что ваш начальный пункт назначения присоединен, затем начните процесс навигации.

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