Код: Выделить всё
NavHost(
navController = navController,
startDestination = UserListScreen
) {
composable {
UserListScreen(
navigateToUserDetails = { user ->
navController.navigate(user.toUserDetails())
}
)
}
composable { entry ->
UserDetailsScreen(
user = entry.toRoute().toUser()
)
}
}
Код: Выделить всё
fun UserListScreen(
viewModel: UserListViewModel = hiltViewModel(),
navigateToUserDetails: (User) -> Unit
) {
Scaffold(
topBar = { UserListTopBar() }
) {
when(viewModel.userListResponse) {
is Loading -> CircularProgressIndicator()
is Success -> {
val userList = userListResponse.userList
UserListContent(
userList = userList,
onUserClick = navigateToUserDetails
)
}
is Failure -> print(userListResponse.e.message)
}
}
}
Код: Выделить всё
class UserListNavigationTest {
lateinit var navController: TestNavHostController
@Before
fun setupNavHost() {
composeTestRule.activity.setContent {
navController = TestNavHostController(LocalContext.current)
navController.navigatorProvider.addNavigator(ComposeNavigator())
NavHost(
navController = navController,
startDestination = UserListScreen
) {
composable {
UserListScreen(
navigateToUserDetails = { user ->
navController.navigate(user.toUserDetails())
}
)
}
composable { entry ->
UserDetailsScreen(
user = entry.toRoute().toUser()
)
}
}
}
}
@Test
fun testDestination() {
//ToDo
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... user-click
Мобильная версия