Вчера переписал проект на Cicerone. Полет нормальный, удобно. Но есть момент, который кажется странным.
Если в SupportAppScreen переопределен метод getFragmentParams(), то getFragment() уже не вызывается.
Как при таком коде правильно передавать Сallback'и в фрагменты? Ведь если нужно передать и Bundle и Callback, то getFragment() не вызовется. Или я туплю и можно запихнуть Callback в Bundle?
Если же переопределять createFragment() в Navigator'e то это и не красиво и все равно не будет вызвано, если getFragmentParams() был переопределен.
Код выглядит примерно так:
class UserScreen(
private val bundle: Bundle,
private val callback: (value: Value) -> Unit,
) : SupportAppScreen() {
override fun getFragment(): Fragment? {
return UserScreenFragment().
apply {
this.callback = callback
}
}
override fun getFragmentParams(): FragmentParams? {
return FragmentParams(
UserScreenFragment::
class.javaclass.
java,
bundle,
)
}
}