问题标签 [android-architecture-navigation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 使用 Android 导航组件动画片段过渡时 Z-Index 冲突
我正在尝试使用Android Navigation而不是片段事务。然而,有一个问题开始变得麻烦。在为新片段使用滑入式动画时,Enter Animation
将位于当前片段下方。请务必查看以下视频以查看运行中的错误。
https://youtu.be/gFnXiEyiypM
该错误似乎不是来自Navigation
组件,尽管针对此特定问题引入的 hacky 解决方案(this和this)似乎在Navigation
使用时无法修复它。
在官方修复发布之前没有解决方法吗?
android - Android Jetpack Navigation 如何处理 Toolbar 和 BottomNavBar 内容
我对导航组件如何适应应用程序行为感到有些困惑。在教程中这一切看起来都很好而且很闪亮,你不会做太复杂的事情,但是在真正的应用程序中实现时,事情似乎有所不同。
导航前
在实现导航之前,我必须手动运行片段事务。为了做到这一点,我的片段将实现一个接口,该接口onFragmentAction
将 a 传递bundle
给主片段Activity
,并在基于动作的活动中,用另一个片段替换当前片段。
需要处理的第二部分是顶部工具栏和BottomAppBar
. 例如BottomAppBar
,需要FAB
在某些片段上以不同方式对齐或隐藏在其他片段中。此外,顶部ToolBar
需要在某些上展开或在其他上折叠。为此,我听取FragmentManager.OnBackStackChangedListener
并根据片段标签getSupportFragmentManager().getBackStackEntryAt(size - 1).getName()
相应地更改布局。
带导航
第一部分似乎很容易做到:传递参数并开始新的片段。但我不知道导航是否可以处理工具栏管理,或者我需要继续从我的活动中管理它。
android - 带有 NavigationDrawer 的导航组件
我正在尝试在我的项目中使用导航组件实现 NavigationDrawer。我有一个 MainActivity 作为入口点和多个片段目的地。我已将抽屉菜单项链接到 nav_graph.xml 中的目的地,一切正常。
我的 NavigationDrawer 中有一个“注销”菜单项选项,单击它我正在启动 LoginActivity。我的问题是
- 我将 LoginActivity 添加到我的 nav_graph 并将其链接到抽屉中的注销菜单项,这是正确的方法吗?
- 启动 LoginActivity 后,当用户按下系统后退按钮时,我希望应用程序转到启动器屏幕而不是堆栈中的先前目的地。这可以通过导航组件实现吗?
这是我的 nav_graph.xml
这是我的drawer_menu.xml
android - Nav-Framework 很好,但是,每当人们单击抽屉布局上的菜单项时,它都会创建片段的视图
我使用 NavController + DrawerLayout,在抽屉上设置一些菜单项,似乎自动设置了抽屉,很酷。但是,每次我单击抽屉上的一个项目并多次单击同一个项目时,Nav 都会导航到同一个片段,并且每次都会调用 onCreateView,真是太难过了!这是一个明确的错误,因为视图的初始化并不便宜。
任何想法?
android - 我可以在导航组件中使用多个 NavHostFragment 吗?
如果您对以下段落有理解困难,请查看我制作的流程图。
我目前正在制作一个带有 3 个顶级目的地的笔记应用程序。顶级目的地之一 (NotesList) 显示用户创建的笔记列表。NotesList 有一个过滤器按钮,它会弹出一个带有 FilterMenu 目标的底部模式表。FilterMenu 有一个搜索按钮,单击时,将工作表的内容替换为搜索目标和一个名为标签的按钮,单击时,将工作表的内容替换为包含与所有注释关联的标签列表的片段(TagList目的地)。
蓝色的一切都是顶级目的地。紫色的所有内容都存在于模态表中。
FilterMenu、Search 和 TagList 显示在模式表中。这意味着 NotesList包含这些片段并且不会被它们替换。它们存在于比 NotesList 小的屏幕区域中。如果我使用导航,片段将相互替换。
我可以使用两个 NavHost 吗?一个用于顶级目的地,一个用于模式表中的内容?如果是这样,我将如何实施它?如果不是,在这种情况下建议做什么?
android - Android Navigation Architecture Component - Nav Drawer Icons
I'm currently using the Android Architecture Component's Navigation
, but I'm running into an issue with my Navigation Drawer
. It shows the hamburger menu when at my starting destination, but other Fragments
are showing the up arrow. I believe I've setup my navigation_graph
incorrectly.
Here you can see my nav drawer, showing 2 items, Home and Settings. When in either of these Fragments, you should see the Hamburger icon.
However, when navigating to the Settings Fragment, it shows the Up arrow.
navigation.graph.xml
I feel like HomeFragment
and SettingsFragment
should be related somehow but I'm not sure how to define that.
main_drawer.xml
MainActivity
And then within MainActivity
, I just set it up like this. I called setupActionBarWithNavController
, but I also have to actually setup the nav drawer myself, and handle the onNavigationItemSelected
.
build.gradle
Thanks.
android - 导航架构组件 - 如何刷新片段?
我有一个具有 recyclerview 的 ListFragment,并且 onClick 任何项目都会打开 DetailsFragment。详细信息片段在底部包含另一个recyclerview,显示“更多项目”。现在 onClick 任何这些项目都应该打开该特定项目的 DetailsFragment。基本上片段需要刷新。
过去,我只会使用 fragmentManager 替换 Fragment。我该如何刷新片段?如何创建指向同一片段的动作?
java - 导航架构组件 - 登录屏幕
我打算像这样实现导航:
我面临的问题是当用户进入LoginFragmennt
并按下返回按钮时,它再次加载LognFragment
即。陷入循环。
我LoginnFragment
根据这个答案导航到使用条件导航。
如何正确实施?
back-stack - Android Architecture Navigation - 如何导航到 Nav Graph 构建回栈中的特定位置
我有一个使用 Android Arch Navigation 创建的线性向导,我想在特定位置启动它,就像使用自然用户导航一样构建回栈。所以我尝试了这个深层链接构建:
这种方法的问题是它不能正确构建回栈,因为用户将构建导航步骤 1 -> 步骤 2 -> ... -> 步骤 N 它只包含步骤 1 -> 步骤 N,即开始目的地和导航图的目标目的地。这不是我想要的。
第二种简单的方法是多次调用navigate()
on navController
。但是看起来很简单却行不通
它导航正确,但创建的返回堆栈很奇怪,即返回按钮似乎工作,但onNavigatedListener监听器来自
没有正确调用。所以我不能听向导中的片段变化。此外,NavController 似乎已中断,因为连续按钮侦听器的 navController.navigate(actionId) 会引发错误。
java.lang.IllegalArgumentException:此 NavController 未知导航目的地
更新!
用调试器拦截 onBackPressed() 似乎表明 Back Button Press 没有调用 navController.popBackStack() 并且 navController.currentDestination 属性没有改变。但是在 NavHostFragment 内部,片段正在发生变化。
searchview - 导航架构组件 - 使用 SearchView 进行搜索
我研究了许多关于此的帖子和文章,但无法得到一个好的答案。
我在使用导航架构组件实现搜索时遇到了问题。我有一个 MainActivity、mainFragment 和一个 searchFragment。mainFragment 在我的 navigationGraph 中设置为目的地。我有这些疑问 1. 搜索应该成为活动或 mainFragment 的一部分,什么是正确的方法。2. 如果搜索是活动的一部分,那么为我的搜索处理向上按钮就会成为问题。搜索上的向上按钮退出 MainActivity,不在 mainFragment 中。我在想 NavController 应该有包含 mainFragment 然后是 searchFragment 的堆栈,一旦你按下 searchFragment 中的向上按钮,它应该弹出并且 mainFragment 应该显示。看起来我错过了一些东西。