首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    谷歌官方组件Navigation你了解了吗?

    导航组件的构成 导航组件由三个关键的部分组成: Navigation graph(导航图): 这是一个包含所有位置导航相关信息的XML资源文件。...这里包括应用程序当中的所有单独的内容区域(被称为目标视图),以及连接在应用程序当中各个“目标”的路径。 NavHost: 一个用于展示导航图当中目标视图的空的容器。...NavController: 管理NavHost中的应用程序导航的对象。 当用户在整个应用程序中移动时,NavController会协调NavHost中目标内容的交换。...当我们通过导航浏览我们的应用程序的时候,我们可以通知NavController我们要沿着导航图当中的特定的路径进行导航,或者直接导航到特定的目的地。...接下来NavController可以在NavHost当中显示出适当的目标视图。 导航组件有很多的好处: 可以处理fragment的事务。 默认情况下可以正确的处理好各个事物之间前后的操作。

    1.1K00

    Jetpack组件之Navigation

    优点 可视化的页面导航图,可以使用 Android Studio 的 Navigation Editor 来查看和编辑导航图。 通过destination和action完成页面间的导航。...通过NavigationUI类,对菜单、底部导航、抽屉菜单导航进行统一的管理。 主要元素 Navigation Graph。...()添加菜单,则可以通过覆盖Activity的onOptionsItemSelected()以调用onNavDestinationSelected(),从而将菜单项与目标页相关联。...|| super.onOptionsItemSelected(item); } 当我们在Fragment中添加菜单跳转目标页时,需要覆盖目标页面onCreateOptionsMenu...(navView, navController); 导航事件监听 NavController提供了一个名为OnDestinationChangedListener的接口,对页面切换事件进行监听,该接口在页面发生切换或参数改变时调用

    3K20

    安卓Navigation系列——进阶篇

    , app:menu属性为底部导航栏指定元素,新建一个bottom_nav_menu的menu资源文件 navController对象,只不过它是继承自NavController的,戳进去构造方法,发现调用了父类的构造方法,再戳进去来到了NavController的构造方法, public NavController...navOptions, navigatorExtras); ...... } 可以看到,在第二个重载方法中,通过findDestination方法传入导航到目标页面的...那么我们是不能在布局文件中通过app:navGraph属性指定自定义的导航资源文件了,只能在布局文件中去掉app:navGraph这个属性,然后在添加FixFragmentNavigator的同时,通过代码将导航资源文件设置进去...(fragmentNavigator) //通过代码将导航资源文件设置进去 navController.setGraph(R.navigation.fix_nav_graph

    3.2K30

    compose--附带效应、传统项目集成、导航

    接下来使用navController来导航到不同的可组合项,下面是官方给出的示例的几种方式: 在导航到“friendslist”并加到返回堆栈中 navController.navigate("friendslist...") 在导航到“friendslist”之前,将所有内容从后堆栈中弹出到“home”(不包含home) navController.navigate("friendslist") { popUpTo...("home") } 在导航到“friendslist”之前,从堆栈中弹出所有内容,包括“home” navController.navigate("friendslist") { popUpTo...("home") { inclusive = true } } 只有当我们还不在“search”时,才能导航到“search”目标地,避免在后堆栈的顶部有多个副本 navController.navigate...("search") { launchSingleTop = true } 例子: 我们给App添加上Scaffold,并在底部导航栏进行navController导航的控制 class NaviActivity

    2.3K40

    【详解】Android Jetpack 新组件之Navigation的用法和源码结构分析

    >>>> 传递数据 您可以通过两种方式在目标之间传递数据:使用Bundle对象或使用safeargs Gradle插件以类型安全的方式传递数据。...导航架构组件有一个名为safeargs的Gradle插件,它生成简单的对象和构建器类,以便对目标和动作指定的参数进行类型安全访问。...>>>> Deeplink-深度链接跳转 在Android中,深层链接是指向应用中特定目标的URI。类似Activity的scheme协议。...,我们需要在目标的Activity中重写onSupportNavigateUp,以确保导航器能够正确的回退栈。...在oncreate的时候实例化NavController,它才是真正处理导航的,并且把FragmentNavigator实例化添加到SimpleNavigatorProvider @Override

    2.3K40

    谷歌官方组件Navigation你会用了吗?

    导航是发生在应用的目标示图之间——用户可以导航到应用当中的任何的位置。...将这些目标视图通过操作来连接起来。 导航图是包括所有的目标视图和操作的一个资源文件,这个导航图标代表了我们应用的所有的导航路径图。...然后我们直接拖NavHostFragment 的视图到我们的activity文件当中 在导航视图当中添加目标视图 这里总共有三种不同的方式可以在我们的导航视图当中添加目标视图 添加已经存在的目标视图 如果我们想把已经存在的目标视图想要添加在导航图当中...导航到目标视图,我们需要用到NavController,它是用于管理NavHost中的应用程序导航的对象。...每个NavHost都有自己的相应NavController。

    1.1K10

    Android Navigation + Fragment 制作APP主页面导航(步骤 + 源码)

    添加完了依赖,就得先来简单介绍一下这个Navigation了,Navigation分为三大件:导航图、NavHost、NavController。...现在要从A切换到B 导航图:读取这个切换目标及路径 NavHost:包含A、B、C的容器,用于显示Fragment。...NavController:在得知切换目标时,控制NavHost去显示B这个Fragment。 这么一说,你是否有一些理解了呢? 2....这个是用来控制NavHost显示Fragment,虽然我刚才在导航图nav_graph.xml中指明了第一个要显示的Fragment,但是它还缺少这个显示的动机,而这个动机由NavController来提供...,navController); } } 像这样绑定之后,你现在点击底部导航之后,NavController就会控制NavHost去显示相应的Fragment。

    10.2K42

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

    1 在JetPack中有一个组件是Navigation,顾名思义它是一个页面导航组件,相对于其他的第三方导航,不同的是它是专门为Fragment的页面管理所设计的。...它有一个属性startDestination用来定义导航栈的根入口fragment fragment: 顾名思义fragment页面。...通过destination来关联将要跳转的目标fragment。 以上是nav_graph.xml的基本配置。 在配置完之后,我们还需要将其关联到Activity中。...@anim/slide_out_right" /> 29 30 31 ... 32 对应四个动画配置参数 enterAnim: 配置进场时目标页面动画...exitAnim: 配置进场时原页面动画 popEnterAnim: 配置回退pop时目标页面动画 popExitAnim: 配置回退pop时原页面动画 通过上面的配置你可以看到如下效果 ?

    1.7K30

    JetPack指路明灯—Navigation

    多个destination连接起来就组成了一个栈导航图,destination之间连接就是action。...同时,在onCreate的时候,创建了NavController,与mGraphId进行绑定。 使用路由 在Fragment中,可以通过NavController来进行路由,代码如下所示。...这样的API设计,可以让用户传入View后进行遍历,通过查找指定Tag来获取NavController,简化了调用方式。...添加路由动画 路由切换动画是action的属性,当我们使用action进行路由时,可以指定目标Page,和原Page的动画切换效果,它包含下面几个属性。...enterAnim:目标Page进入动画 exitAnim:目标Page进入时,原Page退出动画 popEnterAnim:目标Page退出动画 popExitAnim:目标Page退出时,原Page

    1K20

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

    多个destination连接起来就组成了一个栈导航图,destination之间连接就是action。...同时,在onCreate的时候,创建了NavController,与mGraphId进行绑定。 使用路由 在Fragment中,可以通过NavController来进行路由,代码如下所示。...路由跳转 通过NavController进行路由跳转,有多种方式,比如通过路由action指定,也可以指定跳转的destination。...添加路由动画 路由切换动画是action的属性,当我们使用action进行路由时,可以指定目标Page,和原Page的动画切换效果,它包含下面几个属性。...enterAnim:目标Page进入动画 exitAnim:目标Page进入时,原Page退出动画 popEnterAnim:目标Page退出动画 popExitAnim:目标Page退出时,原Page

    2.1K00
    领券