android-navigation 相关问题

设计有效的导航:一致的导航是整体用户体验的重要组成部分。除了基本导航之外,很少有事情会以不一致和意想不到的方式挫败用户。

onBackPressedDispatcher 破坏了 Jetpack Compose 导航

我在 Jetpack 撰写应用程序中使用 onBackPressedDispatcher 时发现了一个错误。 这是一个演示该错误的简单示例。 假设该应用程序具有以下设置: 它有一个 MainActivity ...

回答 1 投票 0

使用 NavController 从 BottonNavigationBar 单击时会重新创建片段

所以我在片段A中有一个GoogleMap,每当我从BottomNavigationBar中选择片段B并再次选择片段A时,地图就会重新初始化。但是,如果我通过 back-pre 返回到片段 A...

回答 1 投票 0

通过图标进行持续 GPU 渲染

我的 Icon() 组件有问题,它看起来像是在不断重绘。我不明白这种行为,我几乎尝试了所有方法,它看起来像一个错误。我在其他地方没有看到这种行为...

回答 1 投票 0

NavBackStackEntry 无法转换为 androidx.activity.ComponentActivity

我有一个处理后按的 SystemBackButtonHandler,但 Logcat 中出现以下错误 java.lang.ClassCastException:androidx.navigation.NavBackStackEntry 无法转换为 androidx.ac...

回答 1 投票 0

Jetpack Compose - 底部导航栏未与嵌套 navGraph 一起显示

我正在使用 Jetpack Compose 开发一个 Android 应用程序。目前,我有几个屏幕(登录、注册、消息、个人资料和设置)。我使用根 NavGraph 来托管

回答 1 投票 0

使用 Compose Navigation 启动 Activity

我正在尝试通过单击底部导航栏上设置的按钮来启动活动。有一个使用 NavGraphBuilder.navigation() 设置的 Compose 导航,并为每个 Compose 屏幕调用 composable()

回答 2 投票 0

在 Compose 多平台中使用 Voyager 时显示/隐藏底部选项卡栏

我在我的撰写多平台项目中使用 Voyager,我有一个关于如何根据 HomeTab 内 LazyColumn 的滚动方向显示/隐藏底部选项卡栏的问题。我有

回答 1 投票 0

在导航片段中使用片段

代码 主要活动 // MainActivity.kt 类 MainActivity : AppCompatActivity() { 覆盖 fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)

回答 1 投票 0

如何在 Jetpack compose 中导航到其他屏幕时进行多个呼叫

在我的应用程序中,我在导航到另一个屏幕时添加了动画: 导航主机( 导航控制器 = 导航控制器, 起始目的地 = 起始目的地, 输入转换 = {

回答 1 投票 0

Android BottomNavigation startDestination 循环 onCreate 函数

我有一个非常简单的应用程序,其中包含一个包含 FragmentContainerView 和 BottomNavigationView 的 MainActivity。 在 FragmentContainerView 中,我想显示三个片段之一。仅碎片...

回答 1 投票 0

在 Android/Jetpack Compose 中手动预填充导航后台

是否可以在 Android/Jetpack Compose 中预填充导航后台? 我有一个深层链接,可以深入导航层次结构,但是,在返回时,它会导航到...

回答 2 投票 0

Android NavController 的返回堆栈上没有 ID 为 2131362800 的目的地

我在 Firebase 上遇到过严重崩溃,每个用户平均发生 6 次。但是您有什么想法可以帮助解决这个我永远不会重复的错误吗? 如果我

回答 1 投票 0

Android - 使用 espresso 启动片段传递导航参数

我正在使用类似这样的方法在浓缩咖啡上测试我的片段: launchFragmentInContainer(themeResId = R.style.MaterialTheme) 但是,我的 ErrorManagerFragment 需要一个

回答 2 投票 0

如何使用jetpack compose导航注销后将用户重定向到登录页面

我在我的项目中使用jetpack compose。我的应用程序包含多个屏幕和嵌套导航。 所以我的 MainActivity 中有这个: val startDestination = if (setting.isUserLoggedIn)

回答 1 投票 0

当我作为参数传递到 jetpack compose 中的另一个屏幕时,为什么我的 imageUri 会发生变化?

我有一个屏幕可以从图库中选择照片,在这个屏幕上,我从图库中选择照片并将我选择的 imageUri 传输到我想要显示的屏幕。所以,我们可以想到...

回答 1 投票 0

如何从一个导航图中创建的一个片段导航到位于另一个导航图中的另一个片段?

我创建了一个 MainActivity,其中有一个片段 HelloFragment 和一个导航图 nav_graph。 我还有另一个 Activity WhyActivity,它有一个 Fragment WhyFragment 和一个 Navigation Gr...

回答 1 投票 0

看不到选项菜单栏

类 MainActivity : AppCompatActivity() { 覆盖 fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } ...

回答 1 投票 0

BottomNavigationView 覆盖片段

在Android Studio中创建新应用程序时,使用底部导航活动,我发现片段底部的内容不会显示,因为BottomNavigationView是h...

回答 3 投票 0

需要使用 handler.postDelayed 从 DialogFragment 返回,使用带有布尔参数的导航组件返回

我正在使用导航组件来启动和关闭错误对话框。我注意到,当我尝试在重试流程上重新打开错误对话框时,我收到一条错误消息,指出无法找到该操作。它...

回答 1 投票 0

popBackStack() 在 android NavController 中不起作用

我正在使用 android JetPack 导航在我的片段之间导航。这就是我的导航图的样子 我正在使用 android JetPack 导航在我的片段之间导航。这就是我的navigation graph的样子 <?xml version="1.0" encoding="utf-8"?><navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/registration_nav_graph" app:startDestination="@id/registrationStoreNameFragment"> <fragment android:id="@+id/registrationStoreNameFragment" android:name="com.minidukaan.android.feature.registration.view.RegistrationStoreNameFragment" android:label="fragment_registration_store_name" tools:layout="@layout/fragment_registration_store_name" > <action android:id="@+id/action_registrationStoreNameFragment_to_registrationStoreUrlFragment2" app:destination="@id/registrationStoreUrlFragment2" /> </fragment> <fragment android:id="@+id/registrationStoreUrlFragment2" android:name="com.minidukaan.android.feature.registration.view.RegistrationStoreUrlFragment" android:label="RegistrationStoreUrlFragment" > <action android:id="@+id/action_registrationStoreUrlFragment2_to_registrationLocationFragment" app:destination="@id/registrationLocationFragment" /> <argument android:name="store_name" app:argType="string" /> <argument android:name="store_slug" app:argType="string" /> </fragment> <fragment android:id="@+id/registrationLocationFragment" android:name="com.minidukaan.android.feature.registration.view.RegistrationLocationFragment" android:label="fragment_registration_location" tools:layout="@layout/fragment_registration_location" > <action android:id="@+id/action_registrationLocationFragment_to_registrationSuccessFragment" app:destination="@id/registrationSuccessFragment" /> <argument android:name="store_name" app:argType="string" /> <argument android:name="store_slug" app:argType="string" android:defaultValue=""/> </fragment> <fragment android:id="@+id/registrationSuccessFragment" android:name="com.minidukaan.android.feature.registration.view.RegistrationSuccessFragment" android:label="fragment_registration_success" tools:layout="@layout/fragment_registration_success" /> 从RegistrationStoreNameFragment我像这样导航到RegistrationStoreUrlFragment private lateinit var navController: NavController override fun init(savedInstanceState: Bundle?) { super.init(savedInstanceState) .... binding.lifecycleOwner = this navController = view?.let { Navigation.findNavController(it) }!! val action = RegistrationStoreNameFragmentDirections. actionRegistrationStoreNameFragmentToRegistrationStoreUrlFragment2(storeName, it.slug) navController.navigate(action) } 所以它可以完美导航,但是当我在 navController.popBackStack() 中执行 RegistrationStoreUrlFragment 时,它不会导航回来。任何帮助将不胜感激,因为我很长时间都陷入这个问题。 对于其他片段,popBackStack 工作正常,但不适用于上面提到的片段。 您想什么时候导航? 如果您想在任何自定义事件中导航回之前添加的片段, 您必须在 NavGraph 中的 Fragment 标签下定义 popUpTo 操作, <fragment android:id="@+id/registrationStoreUrlFragment2" android:name="com.minidukaan.android.feature.registration.view.RegistrationStoreUrlFragment" android:label="RegistrationStoreUrlFragment" > <action android:id="@+id/action_pop_back" app:destination="@id/registrationSuccessFragment" app:popUpTo="@+id/registrationSuccessFragment"/> </fragment> 并在导航中这样调用它, findNavController().navigate(R.id.action_pop_back) 当前片段要返回 homeFragment findNavController().popBackStack(R.id.homeFragment, true) 这对我来说工作得很好。也许会对你有帮助 对于我的情况,我遇到了同样的问题,我尝试了通过在 app:popUpTo 中设置 xml 给出的解决方案,但对我来说问题是后退按钮在这种情况下只能工作一次。 然后我用 app:popUpToSaveState 将其设置如下,现在来回工作正常: <navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/anonymous_navigation" app:startDestination="@id/startupFragment"> <fragment android:id="@+id/landingFragment" android:name="com.myApp.ui.landing.LandingFragment" android:label="fragment_landing" tools:layout="@layout/fragment_landing" > <action android:id="@+id/action_landingFragment_to_loginFragment" app:destination="@id/loginFragment" app:popUpToSaveState="@id/landingFragment" /> </fragment> </navigation> 然后在代码中,当按下后退时我会调用navigateUp: findNavController().navigateUp()

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.