android-architecture-navigation相关内容

导航 Arch 组件是否会造成误报内存泄漏?

我对内存泄漏以及可能导致它们的原因有基本的了解.这就是为什么我不明白我的代码是否有问题还是误报.由于项目不小,不知道该分享哪一部分代码.但请在评论中告诉我,我会添加所需的代码. 我使用导航拱组件并遵循 MVVM 模式.我在项目开发后期添加了 LeakCanary 库,当我在屏幕之间导航时,它立即开始向我发出有关保留实例的警告. 当我将片段添加到返回堆栈时会出现问题.随着每个添加到返回堆 ..

导航组件 popUpTo 错误

最近我遇到了关于这里 的问题 但是当我试图弄清楚发生了什么时,我总是偶然发现同样的问题. 这就是我所拥有的 - 我有一个收藏、预览、编辑片段,而不需要在它们之间导航. 但是在从编辑片段导航到预览片段之后,我希望后退按钮将用户带到集合片段而不是编辑片段,它确实这样做了,但是当尝试进一步导航时它崩溃了,因为据说目的地是 (view_fragment).这是为什么,这是某种错误吗? ..
发布时间:2021-11-27 13:54:12 移动开发

Android 导航组件:如何保存片段状态

我使用 bottomNavigationView 和导航组件.请告诉我如何在切换到另一个选项卡并返回旧选项卡后不破坏片段?例如,我有三个选项卡 - A、B、C.我的开始选项卡是 A.导航到 B 后,然后返回 A.当我返回选项卡 A 时,我不希望它被重新创建.怎么办?谢谢 解决方案 根据 未决问题, Navigation 不直接支持多回退栈——即从 A 或 C 回退到 B 时保存栈 B 的状 ..
发布时间:2021-11-27 13:53:53 移动开发

是否可以使用 Android 导航架构组件(Android Jetpack)有条件地设置 startDestination?

我正在使用 Navigation 来自 Android Jetpack 在屏幕之间导航.现在我想动态设置 startDestination. 我有一个名为 MainActivity 的活动还有两个 Fragment,FragmentA &片段B. var isAllSetUp : Boolean =//它是动态的,我是从 Preferences 中得到的.如果(isAllSetUp){// ..

使用 Jetpack 的 Android 导航组件销毁/重新创建片段

我正在尝试使用 Jetpack 的架构组件实现导航 在我现有的应用中. 我有一个活动应用程序,其中主要片段 (ListFragment) 是一个项目列表.目前,当用户点击列表项时,第二个片段会通过 fragmentTransaction.add(R.id.main, detailFragment) 添加到堆栈中.因此,当按下返回时,DetailFragment 被分离,ListFragmen ..

IllegalArgumentException:此 NavController 未知导航目标 xxx

当我尝试从一个 Fragment 导航到另一个时,我遇到了新的 Android 导航架构组件的问题,我收到了这个奇怪的错误: java.lang.IllegalArgumentException:导航目的地XXX这个 NavController 不知道 除了这个特定的导航之外,其他所有导航都可以正常工作. 我使用 Fragment 的 findNavController() 函数来访问 ..

导航架构组件 - 对话框片段

是否可以将新的导航架构组件与 DialogFragment 一起使用?我是否必须创建自定义导航器? 我希望将它们与导航图中的新功能一起使用. 解决方案 不,从 1.0.0-alpha01 版本开始,不支持将对话框作为导航图的一部分.您应该继续使用 show() 来显示一个 DialogFragment. ..

如何使用导航架构组件从片段中获取结果?

假设我们有两个片段:MainFragment 和 SelectionFragment.第二个是用于选择某个对象的构建,例如一个整数.从第二个片段接收结果有不同的方法,如回调、总线等. 现在,如果我们决定使用导航架构组件来导航到第二个片段,我们可以使用以下代码: NavHostFragment.findNavController(this).navigate(R.id.action_sele ..

导航架构组件 - 将参数数据传递给 startDestination

我有一个活动 A,它启动活动 B 向它传递一些意图数据.活动 B 托管来自新导航架构组件的导航图.我想将该意图数据作为参数传递给 startDestination 片段,该怎么做? 解决方案 好的,感谢 Google 团队的 Ian Lake,我找到了该问题的解决方案.假设您有一个活动 A,它将使用一些意图数据启动活动 B,并且您想在 startDestination 中获取该数据,如果您 ..

带有 ViewPager 和 TabLayout 的 Android Jetpack 导航

对于一个新的应用程序,我使用 Jetpack 导航库来实现正确的返回导航.第一级导航是导航抽屉,如文档中所述,它可以与喷气背包导航配合使用.但是还有另一个层次的导航是用 ViewPager 和 TabLayout 实现的.TabLayout 切换的片段包含额外的线性导航层次结构.但是,Jetpack Navigation 似乎不支持 ViewPager/TabLayout.必须实现 Fragmen ..

如何在 NavHostFragment 中检索当前片段?

我试图在新的导航组件中找到一个方法,但我没有找到任何关于它的方法. 我有当前目的地: mainHostFragment.findNavController().currentDestination 但我无法获得对显示片段的任何引用. 解决方案 引用显示的片段(AndroidX): Java public Fragment getForegroundFragment(){片 ..

Android Jetpack Navigation、BottomNavigationView 与 Youtube 或 Instagram 类似正确的返回导航(片段返回堆栈)?

Android Jetpack Navigation、BottomNavigationView 在返回按钮点击时具有自动片段返回堆栈? 我想要的是,在用户一个接一个地选择多个标签后,用户点击后退按钮应用程序必须重定向到他/她打开的最后一页. 我使用 Android ViewPager 实现了相同的效果,方法是将当前选定的项目保存在 ArrayList 中.Android Jetpack ..

导航到 Android 中的另一个片段后如何清除导航堆栈

我正在使用新的导航架构组件 在 android 中,在移动到新片段后,我一直在清除导航堆栈. 示例:我在 loginFragment 中,我希望在导航到 home 片段时从堆栈中清除此片段,以便用户在按下后退按钮时不会返回到 loginFragment. 我正在使用一个简单的 NavHostFragment.findNavController(Fragment).navigate(R. ..

如何使用导航组件清除返回堆栈中的每个片段(例如,当 HTTP 401 触发时)并发送到登录片段

我们有下一个属性可以在打开另一个片段时删除片段. app:popUpTo=“...";app:popUpToInclusive="true"; 但是,如果我需要清除所有返回堆栈,但不知道 401 事件中的第一个 ID(并且起始目的地可能已经从堆栈中删除). 我该怎么做? 例如,我可能有 5 个片段在后堆栈中,但我不知道第一个片段的 id,如何将它们全部删除并打开一个登录片段? ..

Android 导航组件活动意图标志

我已经创建了从片段到活动的导航操作,但是我无法清除返回堆栈.当我执行从片段到新活动的导航操作并按下后退按钮时,我将返回到上一个活动和上一个片段.我无法使用导航图设置 Intent 标志来清除返回堆栈中的先前活动. PopTo 和 Inclusive 标志在从片段导航到新活动时对后退按钮没有影响,即使它们可以在图表编辑器中设置.我可以使用后退按钮导航到堆栈中不再需要的上一个活动. 在迁移 ..