У меня FragmentActivity
называется StartupActivity
.Это действие содержит 5 Fragments
-> LoginFragment, LostPasswordFragment, RegistrationFragment, Login2Fragment, CityPickFragment
.Я могу переключаться между фрагментами, используя ToolBar
BackButton .Проблема в том, что замена определенного фрагмента с помощью suppportFragmentManager и простой транзакции отстает от приложения.Если я нажимаю BackButton , для переключения фрагмента требуется почти 5 секунд .Fragments
имеет простой макет с 1 ImageView 2 EditTexts и кнопкой (+ Панель инструментов) .
Знаете ли вы, что может быть не так?
Вот пример кода, как фрагментпереключение работает.Когда я начну StartupActivity
сразу после SplashScreen
, он создаст все 5 фрагментов как переменные и установит по умолчанию Fragment
в Контейнер FrameLayout .
Затем в каждом из 5 фрагментов будеткнопку назад на панели инструментов, и я установил onClickListener()
, который вызывает метод в parentActivity
на переключить фрагмент .
Мои фрагменты имеют теги , потому что я должен отключить onBackPressed () при первом фрагменте (Невозможно вернуться к SplashScreen из фрагмента по умолчанию).
//RegistrationFragment
fragmentBackButton.setOnClickListener {
(activity as StartupActivity).switchToDefaultLoginFragment()
}
//StartupActivity
fun switchToDefaultLoginFragment(){
fragmentTransaction = supportFragmentManager.beginTransaction()
fragmentTransaction.apply {
replace(R.id.startup_fragment_container, defaultLoginFragment, "LOGIN_FRAGMENT")
addToBackStack(null)
commit()
}
}