В настоящее время мой фрагмент выглядит так:
SignInFragment:
Код: Выделить всё
class SignInFragment : BaseFragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
val composeView = ComposeView(requireContext())
composeView.apply {
setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed)
setContent {
activity?.let {
SignInScreen()
}
}
}
return composeView
}
}
Код: Выделить всё
findNavController().navigate(SignInFragmentDirections.actionSignInFragmentToHomeFragment())
Код: Выделить всё
@Composable
fun SignInScreen(authViewModel: AuthViewModel = viewModel())
{
val authState by authViewModel.authState.collectAsState()
val lifecycleEventObserver = remember {
LifecycleEventObserver { _, event ->
if (event == Lifecycle.Event.ON_RESUME) {
authViewModel.checkAuthorized()
}
}
}
ProcessLifecycleOwner.get().lifecycle.addObserver(lifecycleEventObserver)
if(authState is AuthUIState.LoginSuccess) {
navigateToDashboard()
}
Button(
onClick = { authViewModel.signIn() },
) {
Text("SignIn")
}
}
fun navigateToDashboard() {
// Try to navigate to home fragment
}
Я не могу придумать, как выполнить NavigationToDashboard()
Я действительно пытаюсь сохранить фрагмент только для nav_graph, чтобы можно было выполнить переход, когда все экраны находятся в режиме Compose.
есть идеи?< /п>
Подробнее здесь: https://stackoverflow.com/questions/790 ... y-fragment