首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

以编程方式创建NavHostFragment后获取NavController

NavHostFragment是Android Jetpack中的一个组件,用于在导航图中承载Fragment的容器。通过编程方式创建NavHostFragment后,可以通过获取NavController来管理导航操作。

NavController是一个用于管理导航操作的控制器对象。它负责处理导航图中的目的地之间的切换,并提供一些方便的方法来执行导航操作。

要以编程方式创建NavHostFragment并获取NavController,可以按照以下步骤进行操作:

  1. 在布局文件中添加NavHostFragment:
  2. 在布局文件中添加NavHostFragment:
  3. 这里的@navigation/nav_graph是指导航图的资源文件,需要根据实际情况进行替换。
  4. 在相关的Activity或Fragment中获取NavHostFragment的实例:
  5. 在相关的Activity或Fragment中获取NavHostFragment的实例:
  6. 通过NavHostFragment获取NavController:
  7. 通过NavHostFragment获取NavController:
  8. 现在,你就可以使用navController对象来执行导航操作了。

NavHostFragment的创建和NavController的获取完成后,你可以使用NavController来执行各种导航操作,例如导航到目标Fragment、传递参数等。

NavHostFragment和NavController的使用可以帮助你实现应用程序的导航功能,使得用户可以在不同的Fragment之间进行流畅的切换和交互。

腾讯云相关产品中,与Android开发和移动应用程序开发相关的产品包括腾讯移动分析、腾讯移动推送、腾讯移动支付等。你可以通过访问腾讯云官方网站(https://cloud.tencent.com/)来了解更多关于这些产品的详细信息和使用指南。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android进阶必学】JetPack指路明灯—Navigation

同时,在onCreate的时候,创建NavController,与mGraphId进行绑定。 使用路由 在Fragment中,可以通过NavController来进行路由,代码如下所示。...为什么能获取 这里有个地方很有意思,那就是为什么通过view可以获取NavController。 Navigation.findNavController(View) 从源码中可以发现。...image.png 这样的API设计,可以让用户传入View后进行遍历,通过查找指定Tag来获取NavController,简化了调用方式。...路由跳转 通过NavController进行路由跳转,有多种方式,比如通过路由action指定,也可以指定跳转的destination。...:将原始的命令式编程,向神明式编程转变,将逻辑申明出来,这很挑战老程序员的思维转变 为其它组件铺路:Navigation的架构,适合与其它组件组合使用,例如,虽然每次都会创建Fragment的实例,但是通过

1.9K00

【Jetpack】Navigation 导航组件 ② ( Navigation 核心要点说明 | 创建 Navigation Graph | 创建 NavHostFragment | 完整代码示例 )

Graph , 在其中配置 Fragment 之间的跳转动作 ; 再 , 基于创建的 Navigation Graph 创建显示内容的 NavHostFragment 组件 ; 最后 , 在 Activity...中 获取 NavController 组件实现 Fragment 之间的跳转 ; 必须按照上述流程进行创建 : Fragment -> Navigation Graph -> NavHostFragment...Fragment 纳入导航管理 , 这也是要先创建 Fragment , 然后才能创建 Navigation Graph 的原因 ; 创建完 Navigation Graph , 在 Design..." New Destination " 按钮 , 添加要进行导航的 Fragment 页面 , 这里将 FragmentA 和 FragmentB 都纳入到 Navigation 导航管理中 ; 创建可以通过拖动鼠标..., 之后会通过 NavController 调用上面的两个跳转 , 分别实现两个 Fragment 之间的跳转 ; 5、创建 NavHostFragment NavHostFragment 设置在 Activity

41620

JetPack指路明灯—Navigation

同时,在onCreate的时候,创建NavController,与mGraphId进行绑定。 使用路由 在Fragment中,可以通过NavController来进行路由,代码如下所示。...为什么能获取 这里有个地方很有意思,那就是为什么通过view可以获取NavController。 Navigation.findNavController(View) 从源码中可以发现。 ?...这样的API设计,可以让用户传入View后进行遍历,通过查找指定Tag来获取NavController,简化了调用方式。...路由跳转 通过NavController进行路由跳转,有多种方式,比如通过路由action指定,也可以指定跳转的destination。...:将原始的命令式编程,向神明式编程转变,将逻辑申明出来,这很挑战老程序员的思维转变 为其它组件铺路:Navigation的架构,适合与其它组件组合使用,例如,虽然每次都会创建Fragment的实例,但是通过

96920

【Jetpack】Navigation 导航组件 ① ( Navigation 引入 | Navigation 特点 | Navigation 重要组件 | Navigation 使用流程 )

; Navigation Graph 中定义的 Fragment 页面 需要通过 NavHostFragment 进行展示 ; NavController 组件 : 该组件是 NavHostFragment...NavController 组件 会将 指定的 Fragment 显示到 NavHostFragment 组件中 ; 四、Navigation 使用流程 ---- Navigation 使用流程 : 创建若干...NavHostFragment 组件 创建 Navigation Graph 组件有一个前提 , 那就是 Fragment 已经创建完毕 ; 创建 NavHostFragment 组件有一个前提 ,...容器组件 , 这是一个 UI 布局组件 ; 拖动 Container 下的 NavHostFragment 组件 到 Activity 布局中 , 拖动 , 需要选择对应的 Navigation...NavController 通过 调用 findNavController 函数 , 获取 NavController , 然后通过该 NavController 变量进行导航 ; /

42040

1. Jetpack源码解析---看完你就知道Navigation是什么了?

it.findNavController().navigate(R.id.webFragment, args) 当然你在接受是也可以通过getArguments().getString(xxxx)这种方式获取...,但是Navigation组件还提供给了我们更简单的方式,当你设置了标签,通过编译代码,会自动为我们生成一个XXXFragmentDirections类,它里面为我们作了参数的封装,而NavController...NavController,并且为这个NavController创建了一个_Navigator__添加了进去,_我们跟踪createFragmentNavigator,发现它创建了一个FragmentNavigator...到底是什么,所以我们先分析了布局中的**NavHostFragment,我们发现为什么要在布局中声明了一个NavHostFragment,**它是用来做什么的,最后发现在它的生命周期中创建了一个NavController...方法切换栈内NavDestination,做到fragment的切换操作。

2.5K30

1. Jetpack源码解析---看完你就知道Navigation是什么了?

it.findNavController().navigate(R.id.webFragment, args) 当然你在接受是也可以通过getArguments().getString(xxxx)这种方式获取...,但是Navigation组件还提供给了我们更简单的方式,当你设置了标签,通过编译代码,会自动为我们生成一个XXXFragmentDirections类,它里面为我们作了参数的封装,而NavController...NavController,并且为这个NavController创建了一个_Navigator__添加了进去,_我们跟踪createFragmentNavigator,发现它创建了一个FragmentNavigator...到底是什么,所以我们先分析了布局中的**NavHostFragment,我们发现为什么要在布局中声明了一个NavHostFragment,**它是用来做什么的,最后发现在它的生命周期中创建了一个NavController...方法切换栈内NavDestination,做到fragment的切换操作。

2.2K20

JetPack--Navigation

那么NavHostFragment会切换成相应的Fragment 一、初识Navigtion 1.Navigtion上手 首先创建两个Fragment:HomeFragment和DetailFragment...NavigationGraph,如果是第一次创建,会提示是否导入依赖,我们选择是就可以了 根据下图提示的先导入Fragment,再建立连接关系: 在Activity布局文件中使用NavHostFragment...的navigate方法可以传递一个bundle,接受的Fragment和以前一样可以用getArguments方法获取: //Activity中绑定,可以通过内部任意一个View获取NavController...为了方便管理,Navigation引入NavigationUI 创建完Fragment,先创建NavigationGraph <?...在NavigationGraph中使用deepLink标签,params可以参数传递的方式获取: <fragment android:id="@+id/settingFragment

57210

编程方式创建Vue.js组件实例

最近参与了一个Vue.js项目,项目中需要能够编程方式创建组件。通过编程,意思是使用JavaScript创建和插入组件,而无需在模板中编写任何内容。...因此,我需要一种能在运行时为任何组件动态创建组件实例并将其插入DOM的方法。 创建实例 最初想法是使用new。但是,它将导出一个简单的对象,而不是类(构造函数)。...我将组件对象传递给Vue.extend创建Vue构造函数的子类。...其次,要从Vue组件实例获取文档上DOM元素引用,可以使用$el属性。 将Props传递给实例 接下来,我可以将一些Props传递给Button实例。比如,type属性。...这就是我们将在实例上修改的确切键,设置按钮的内部文本。请记住,这需要在安装实例之前完成。 另外,在我们的例子中,我们只是在插槽中放入了一个简单的字符串。

7.8K21

Jetpack:新一代导航管理Navigation

前言 不知道小伙伴们是否注意到,用AS创建一个默认的新项目,MainActivity已经有了很大的不同,最大的区别就是新增加了两个Fragment,同时我们注意到这两个Fragment之间跳转的时候并没有使用之前...新建一个Android Resource File,类型选择Navigation即可,输入名称我们就创建了一个导航视图。...注意app:defaultNavHost="true",设置为true表示将这个NavHostFragment设置为默认导航宿主,这样就会拦截系统的返回按钮事件。...的onCreate中创建出来的,是一个NavHostController对象,它继承NavController,所以就是NavController。...而上面我们提到了,在NavHostFragment中给上层View也设置了tag,所以在这里才能获取NavController

86020

1. Android_Jetpack组件---Naviagtion源码解析

it.findNavController().navigate(R.id.webFragment, args) 当然你在接受是也可以通过getArguments().getString(xxxx)这种方式获取...,但是Navigation组件还提供给了我们更简单的方式,当你设置了标签,通过编译代码,会自动为我们生成一个XXXFragmentDirections类,它里面为我们作了参数的封装,而NavController...NavController,并且为这个NavController创建了一个_Navigator__添加了进去,_我们跟踪createFragmentNavigator,发现它创建了一个FragmentNavigator...到底是什么,所以我们先分析了布局中的**NavHostFragment,我们发现为什么要在布局中声明了一个NavHostFragment,**它是用来做什么的,最后发现在它的生命周期中创建了一个NavController...方法切换栈内NavDestination,做到fragment的切换操作。

2.1K10

导航: 多返回栈 | MAD Skills

通过这些扩展函数,应用可以为每个标签页保持一个单独的 NavHostFragment,每个 NavHostFragment 带有它自己的返回栈,当用户切换标签页时,应用在不同的 NavHostFragment...为此我删除了 NavigationExtensions 类,在所有使用它的地方都替换为 NavigationUI 中标准的 setupWithNavController() 方法将我们的 BottomNavigationView...navController = navHostFragment.navController // 使用 navController 设置 bottomNavigationView...hl=en versions.fragment = "1.4.0-alphaXXX" versions.navigation =  "2.4.0-alphaXXX" Gradle sync 完成,我再次运行应用...如果您想了解更多有关底层 API 以及需要修改哪些内容支持多返回栈的信息,请参阅我们之前的推文《全新的 Fragment: 使用新的状态管理器》。 感谢您关注本导航系列!

80420

Navigation的用法

Graph中的Fragment正是通过NavHostFragment进行展示的   NavController:导航控制器,用于在代码中完成Navigation Graph中具体的页面切换动作   它们三者之间的关系可以通过下面的这段话来理解...Fragment来完成这个动作,这里我创建了SecondFragment,方式和之前创建MainFragment一样。...5.使用NavController完成导航       经过以上的步骤,我们还需要通过NavController对象,在代码中完成具体的页面跳转工作,我们需要在MainFragment的布局文件中添加一个...有两种方式,一种是代码的方式,一种是直接通过design面板来添加。   ...age+""); } }   Navigation 组件具有一个名为 Safe Args 的 Gradle 插件,该插件可以生成简单的 object 和 builder 类,以便类型安全的方式浏览和访问任何关联的参数

26420

Android Navigation的四大要点你都知道吗?

它对于单个Activity的App来说非常有用,因为一个Activity为架构的App页面的呈现都是通过不同的Fragment来展示的。所以对于Fragment的管理至关重要。...具体通过内部的NavController中的NavigationProvider来获取Navigator抽象实例,具体实现类是FragmentNavigator,所以最终通过它的navigate方法进行创建我们配置的...此时如果我们直接运行程序发现已经可以看到入口页面WelcomeFragment ?...NavController,通过点击的view来遍历找到最外层的parent view,因为最外层的parent view会在配置文件导入时,即NavHostFragment中的onViewCreated...而对于接受方ShopDetailFragment,插件页面自动帮我们生成一个ShopDetailFragmentArgs,[类名]+Args的类。

1.7K30
领券