用于管理 Navigation 导航的组件 , 属于 Android 系统的 Jetpack 工具包 ; 借助 NavigationUI 可以很方便的 创建和组织应用程序的导航界面 ; 如 : 构建复杂的导航结构...抽屉式导航栏 / 底部导航栏中 的界面导航 ; 本篇博客中介绍一种使用场景 : 使用 AppBar 中的菜单选项控制 Navigation 界面跳转 ; 在 Activity 中 , 使用 Navigation..., 会自动生成对应的 布局文件 : 注意 : 该操作比较坑 , 生成 Fragment 时 , 会自动添加 Kotlin 语言插件的 Gradle 依赖 , 必要时可以删除该依赖 ; 自动生成的依赖没有配置...模式后 , 会提示 Design editor is unavailable until after a successful project sync , 这是因为创建 Fragment 之后 , 还没有进行第一次编译...(navController, appBarConfiguration) 的作用就是将 Navigation 导航切换界面 , 记录到回退栈中 ; // 默认状态下进入 FragmentB 后是无法返回的
前言 不知道小伙伴们是否注意到,用AS创建一个默认的新项目后,MainActivity已经有了很大的不同,最大的区别就是新增加了两个Fragment,同时我们注意到这两个Fragment之间跳转的时候并没有使用之前...在导航试图中,我们可以通过添加activity/fragment等标签手动添加页面,也支持在Design页面中通过界面添加,如下: 注意:这样添加后手动修改一下label。...添加NavHost 下一步我们需要向Activity中添加导航宿主,导航宿主是一个空页面,必须实现NavHost接口,我们使用Navigation提供的默认NavHost————NavHostFragment...同一布局中如果有多个导航宿主(比如双窗口)则必须制定一个为默认的导航宿主。 这时候我们运行应用,就可以发现Activity中已经可以展示FirstFragment了。...(View) parent : null; } return null; } 这里可以看到通过view来获取NavController,如果没有则向上层查找(父view)直到找到或到根结点
应用内导航,也就是我们通常所说屏幕切换,一直是 Android 开发很关键的一部分。...我们已正式发布稳定版 Android Jetpack 导航组件,它包含丰富的库、工具和指南,为开发者们提供了一个强劲、完整的导航框架,让开发者可以轻松应对复杂的导航场景。...我们在这个视频中通过一些导航组件的应用实例,向您演示如何通过 "单个 activity 嵌套多个 fragment" 的方法来完成导航工作。....html Bilibili 视频链接: https://www.bilibili.com/video/av54529064/ 如果您想获取更详细的技术指导,可以查看 Android 开发者网站上有关导航组件的
前言 大约在一年半前,我发布了Compose的第一篇文章 Jetpack Compose开篇 之 HelloWorld,连我自己也没想到,这一年半的时间中我竟再也没有看过Compose..., 如今Compose...已经发布了稳定版本,还没学会Compose让我的头发又白了许多~ 使用Navigation在Compose中导航 如果你之前不喜欢Android提倡的”单Activity“应用,那么在Compose中相信你会慢慢习惯的...接下来我们来看,如何使用navigation来进行页面导航呢?...在页面2中调用popBackStack方法将当前页面出栈便又回到了页面1,这里就不贴页面2的代码了。...总结 除此之外,Navigation 在Compose中还支持深层链接等,关于Compose的更多用法,欢迎持续关注我~
导航是一项重要的认知任务,帮助人类和动物在没有地图的情况下穿过复杂世界中长长的路途。此类长距离导航可同时支持自我定位(「我在这里」)和目标表征(「我要去那儿」)。...DeepMind 未使用交通信息,也没有尝试建模车辆控制。 ? 在没有环境地图的情况下,DeepMind 智能体在视觉多样化环境中导航。...但和这些研究所不同的是,他们没有使用小规模的虚拟环境,而使用了城市规模的真实世界数据,包括伦敦、巴黎和纽约中复杂的交汇道路、人行道、隧道以及各种拓扑结构。...正如谷歌街景中的界面一样,智能体可以在其位置旋转或走向下一个全景图。但和谷歌地图以及街景环境不同的是,智能体没有小箭头提示、局域或全局地图,也没有著名的 Pegman(学习区分公路和人行道)。...该研究中使用的曼哈顿五个区域地图 导航是人工智能研究和发展中的基础研究,尝试在人工智能体中复现人类导航也可以帮助科学家理解其生物性基础。
前言 Jetpack Compose光下拉刷新,官方就提供了三种不同的方式,使用的依赖也不相同,特别的混乱。 所以在网络上看到的示例可能找不到依赖就是这个原因。...Text(text = index.toString()) } } } } PullToRefreshContainer 把libs.version.toml中的...androidx.compose.material3", name = "material3-android", version.ref = "material3Android" } build.gradle.kts中...https://developer.android.google.cn/jetpack/androidx/releases/compose-material3?
前言 在 Compose 中,Modifier 的调用顺序是有影响的。...修饰符列表 https://android-dot-google-developers.gonglchuangl.net/jetpack/compose/modifiers-list?...在 Compose 中,Margin 和 Padding 都用 Modifier.padding() 来设置。...没有background的时候是外边距 有background的时候在background之前的是外边距,在background之后是内边距 pading和background一定要写在height和width...通常情况下,父容器需要使用相应的布局修饰符,如 Box 中的 BoxScope、Column 中的 ColumnScope 或 Row 中的 RowScope。
前言 Jetpack Compose中想更新界面上的任何东西都需要重组,重组本质就是再执行一次当前函数。...触发重组方式有 State值改变 调用方法刷新 State 创建State有以下几种方式 注意 只有在Kotlin中才能生效,在Java中是不行的。...User data类 val stete = mutableStateOf(User()) val user = stete.value //这种情况是不会触发重组的,这里修改的user对象内部的属性,并没有改变...//不会更新 list[index].name = "new value" //会更新 list[index] = list[index].copy(name = "new value") List的中括号
AI 科技评论按:在现代化的机场候机楼、医院大楼、办公楼、运动场、大学校园和零售商店中,方便易用的室内导航应用程序的市场日益扩大。...而智能手机中磁力计、加速计和陀螺仪等先进传感器的出现将加速这一需求。...因为使用 GPS 信号的外部定位方法不够精确,无法有效地进行室内导航。室内定位系统应该能够探测用户在建筑物内的位置,并指示用户如何在建筑物内导航。这些系统用于各种各样的场景当中。...例如,在2017年,IBM 东京研究院为视障人士打造了一套实验性的高精度室内外语音导航系统。...在此过程中,服务提供者需要使用智能手机收集所有行人可达区域的磁场读数,并创建室内空间的带标注的静态地图。在现实世界中,终端用户的手机型号可能与用于这个阶段的特征指纹识别的智能手机型号不同。
https://developer.android.google.cn/jetpack/compose/designsystems/material3?...MaterialTheme.typography.labelLarge 使用主题的形状样式 MaterialTheme.shapes.medium 说明 CompositionLocalProvider CompositionLocalProvider 是 Jetpack...Compose 中的一个重要概念,用于向整个组合树(Compose tree)提供特定类型的值。...这使得在组合树中任何地方都能够访问到这些值,而不需要手动传递它们。...总的来说,CompositionLocalProvider 用于在组合树中传递局部值,使得这些值对于整个组合树中的任何组件都可用,而不需要显式传递。
前言 Jetpack Compose 中的列表组件相对于之前的View方式要简单很多。...modifier = Modifier.padding(16.dp).height(30.dp), ) { Text(text) } } 注意 竖向Grid布局中的子项...,也就是上面的GridItem中的根组件的宽度是自动使用父的,设置宽度不会生效。...modifier = Modifier.padding(16.dp).height(30.dp), ) { Text(text) } } 注意 竖向Grid布局中的子项...,也就是上面的GridItem中的根组件的高度是自动使用父的,设置高度不会生效。
最后一个参数是一个带接收者的Lambda表达式,这个lambda表达式的接收者是LiveDataScope,可以直接在代码块中(1处)中调用其emit方法,向LiveData发值。...block中的代码会在LiveData标为活跃状态后只执行,且正常情况下只会执行一次。LiveData的非活跃到活跃状态的切换发生在注册在其身上的活跃的observer从0变为1时。...cancel() ... } 开启一个取消协程任务,这个协程任务中首先有个等待,在等待期间注释10下面的逻辑就得不到执行。...小结 本文介绍了Jetpack中,LiveData比较有特点的子类。...视频: Android中高级进阶之MVVM与JetPack: LiveData 资深架构师逐题详解Android大厂精选高频面试题之LiveData
, 2、选中 action 跳转 选中一个 代表 Fragment 页面跳转 Action 对应的箭头 , 选中后 , 该箭头变为蓝色 , 右侧可以查看该 跳转 Action 的属性 , 在基础属性中...对话框中选择对应的动画 , 设置 系统自带的 默认退出动画 nav_default_exit_anim 为退出动画 ; 最终的 FragmentA 的页面配置如下 , 关键关注 action 跳转动作中的...action_fragmentB_to_fragmentA" app:destination="@id/fragmentA" /> 进入动画 , 就是在 action 中添加...app:enterAnim="@anim/nav_default_enter_anim" 属性 , 退出动画 , 就是在 action 中添加 app:exitAnim="@anim/nav_default_exit_anim
Fragment / Activity 之间的数据传递 , 应用 App Bar 管理 等操作 ; 上述操作都是 使用纯代码方式进行实现 , 在页面和 App Bar 管理过程中使用比较繁琐 , 维护难度较大 ; Jetpack...二、Navigation 特点 Navigation 提供了 可视化的 页面导航图 , 与 iOS 开发中的 Xcode 环境中的 StoryBoard 类似 ; 在 布局文件 的 Design 模式下..., 完成 Fragment 之间的导航 ; 如果要 为 Fragment 跳转设置动画 , 可以直接在 Navigation 图形化界面中选中某个跳转 , 然后直接在 布局文件的 Design 图形化界面中...NavHostFragment 进行展示 ; NavController 组件 : 该组件是 NavHostFragment 中的管理对象 , 用于管理应用中的导航操作 , 主要是完成在 Navigation...页面 创建 NavHostFragment 组件 执行 Fragment 页面跳转 , 并添加动画效果 使用 NavController 组件实现页面导航 使用 Safe Args 插件安全传递数据
let { name = it.getString("NAME") } 此处 没有 类型检查 , 即使你写错了具体的 属性值 名称 和 属性值 类型 , 编译器也不会报错 , 但是在执行时 ,...会出现错误 ; 下面的代码中 , 调用 getInt(“Name”) 也不会报错 ; 上面的 使用 Bundle 在 Fragment 之间传递 参数 , 没有类型检查 , 即使写错了数据类型 也不会报错...androidx.navigation.safeargs 插件 ; 由于在最新版的 Gradle 配置中 , 使用 根目录下 build.gradle 构建脚本中的 直接配置 plugins 插件的方式..., pluginManagement 是最新的 Gradle 配置 , 但是本项目中没有启用 , 注释掉也可以运行 ; buildscript 是老版本的 Gradle 编译时依赖配置 , 由于本次使用了...androidx.navigation.safeargs' version '2.3.0-alpha06' apply false }*/ III、Module 目录下 build.gradle 构建脚本 该配置没有需要注意的
译者 | 王柯凝 【AI科技大本营导读】在童年记忆中,你是如何沿着路线去朋友家、学校或者商店的?那时候没有地图,只是简单的记住街景和沿途转向。...在没有地图的城市中学习导航时,我们提供了一个交互式导航环境 —— 使用来自 Google 街景视图的第一视角并将其环境游戏化,来训练人工智能。作为街景图像的标准,人脸和车牌比较模糊以至于无法识别。...请注意,这项研究适用于一般导航而不是汽车驾驶,在这里,我们既没有使用交通信息,也没有对车辆控制建模。...图注:我们的代理导航在多种视觉环境中导航,无需访问地图 当代理导航到达目的地(如指定经纬度坐标)时,该代理导航就会获得奖励,就像一个没有地图负责无限交付的快递员一样。...图注:本研究中使用的五个曼哈顿区域 导航是研究和开发人工智能的基础,并试图在人工代理导航中复制导航可以帮助科学家了解其生物学基础。
导航是重要的认知任务,它可以使人类和动物在复杂的世界中无需借助地图,就可实现长途跋涉。...为了学习在没有地图的城市中进行导航,我们提供了一个交互式导航环境,该环境使用来自Google街景视图的第一人称视角照片,并游戏化该环境以训练AI。...我们建立一个基于神经网络的人工智能体,学习使用视觉信息(来自街景视图图像的像素)在多个城市中导航。请注意,这项研究是关于一般导航而非驾驶,我们没有使用交通信息,也没有尝试对车辆控制进行建模。 ?...在不建立地图的情况下学会导航 我们没有利用精确绘图和探测的传统方法。我们的方法是让智能体学习像人类一样只使用视觉观察的方式进行导航,而不借助于地图,GPS定位或其他辅助工具。...研究导航是研究和开发人工智能的基础,而且尝试在人工智能体中复制导航也可以帮助科学家了解其生物性基础。
本文长度为2716字,预计阅读8分钟 Android JetPack Android JetPack是一整套的库,工具和指南。可帮助开发者更轻松地编写优质应用。...说起来Google对JetPack也是非常的重视,从它的官方主页也可以看出来JetPack在首页上就有一个导航栏了。 ?...布局文件中的DataBinding <?xml version="1.0" encoding="utf-8"?...观察者模式 binding.lifecycleOwner = this } } 上面说我生成的ActivityMainBinding,这里就可以直接引用了,Activity中的代码现在看就很简单了...如果我们开始没有引入implementation 'androidx.fragment:fragment-ktx:1.3.0-alpha01'的话,正常的调用ViewModel的方式就是我们上面代码屏蔽的
builder = { crossfade(true)//淡出效果 }), contentDescription = null ) 自带的加载中
前言 Jetpack Compose中的页面跳转和传值和之前没什么不同。 要注意的是 组件内尽量不要进行页面的跳转,组件可以设置回调方法,在Activity中进行页面跳转操作。...在 Android 中,可以通过 Intent 来传递自定义对象,前提是该对象必须实现 Serializable接口。
领取专属 10元无门槛券
手把手带您无忧上云