Переход от композиции к фрагменту, если композиция размещена на фрагментеAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Переход от композиции к фрагменту, если композиция размещена на фрагменте

Сообщение Anonymous »

Я перемещаю свое приложение в режим создания реактивного ранца из поля зрения. Навигация по умолчанию использует nav_graph. Приложение построено по принципу одно действие — несколько фрагментов. Чтобы медленно перемещать приложение, я пытаюсь просто загрузить композицию во фрагмент. поэтому фрагмент можно рассматривать как гнездо для компоновки. Я делаю это для того, чтобы сохранить навигацию на месте до ее перемещения. Я пытаюсь заставить композицию перейти к фрагменту с помощью nav_graph.
В настоящее время мой фрагмент выглядит так:
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
}
}

и я пытаюсь перейти к HomeFragment. В настоящее время я использовал навигацию, как показано ниже:

Код: Выделить всё

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
}
По сути, когда я загружаю SignInScreen, я проверяю состояние авторизации. Если это разрешено, я перенаправляюсь на домашнюю страницу, в противном случае я показываю кнопку для входа пользователя.
Я не могу придумать, как выполнить NavigationToDashboard()
Я действительно пытаюсь сохранить фрагмент только для nav_graph, чтобы можно было выполнить переход, когда все экраны находятся в режиме Compose.
есть идеи?< /п>

Подробнее здесь: https://stackoverflow.com/questions/790 ... y-fragment
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»