You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
def nav_version ="2.4.1"// Java language implementation
implementation "androidx.navigation:navigation-fragment:$nav_version"
implementation "androidx.navigation:navigation-ui:$nav_version"
在build.gradle里面增加,目前稳定版是2.4.1
创建导航图
在“Project”窗口中,右键点击 res 目录,然后依次选择 New > Android Resource File。此时系统会显示 New Resource File 对话框。
在 File name 字段中输入名称,例如“nav_graph”。
从 Resource type 下拉列表中选择 Navigation,然后点击 OK。
引子
其实一开始学习的安卓的时候就接触到Navigation了,当初体验并不佳,再说对安卓也不是太熟悉。所以就用其他方案代替了。这次正好有用到导航控件,无奈与导航是“捆绑销售”的。强行拆开就失去了设计者的本身意图了,所以还要重新拾起来了
Quick Start
1.首先需要添加依赖
在build.gradle里面增加,目前稳定版是2.4.1
创建导航图
在“Project”窗口中,右键点击 res 目录,然后依次选择 New > Android Resource File。此时系统会显示 New Resource File 对话框。
在 File name 字段中输入名称,例如“nav_graph”。
从 Resource type 下拉列表中选择 Navigation,然后点击 OK。
创建目的地
可以通过现有的Fragment,DialogFragment,activity创建目的地
可以通过ide添加目的地,也可以通过房子的图标设置目的的“出发点”
创建NavHostFragment
创建一个FragmentContainerView,把name设为"androidx.navigation.fragment.NavHostFragment",同时把app:navGraph关联到我们前面用的导航图
好了,运行一下最简版的导览已经有了,当然只能显示首页
参考
Navigation入门
导航跳转
导航关键是要能“导”
我们可以通过以下api去找到他
NavHostFragment.findNavController(Fragment)
Navigation.findNavController(Activity, @IdRes int viewId)
Navigation.findNavController(View)
如下代码实现了导航到spaceFragment的功能,当然这是最简单的方式
创建底部导航导航栏
注意:这里的id需要和nav_graph.xml做好“梦幻联动”,id必须一致
addOnDestinationChangedListener可以提供对导航切换的控制操作
Demo
The text was updated successfully, but these errors were encountered: