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

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

我们可以通过Android Studio的 Navigation Editor去编辑和浏览我们的Navigation graph(导航图) 请注意这里必须要求我们的的Android Studio版本在3.3...将这些目标视图通过操作来连接起来。 导航图是包括所有的目标视图和操作的一个资源文件,这个导航图标代表了我们应用的所有的导航路径图。...>是导航图的根元素,当我们要在图标当中添加目标视图和连接动作的时候,我们可以使用和元素作为子元素。...然后我们直接拖NavHostFragment 的视图到我们的activity文件当中 在导航视图当中添加目标视图 这里总共有三种不同的方式可以在我们的导航视图当中添加目标视图 添加已经存在的目标视图 如果我们想把已经存在的目标视图想要添加在导航图当中...两种跳转分别是传入nav_graph.xml当中的action id和resource id。

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    导航组件概览 | MAD Skills

    导航组件介绍 导航组件包括了相关 API 和 Android Studio 中的设计工具,其大大简化了您应用中导航流程的创建和编辑。以前没有导航组件的时候,应用中的导航任务是由我们手动编码实现的。...在之前图表的导航图中,您还可以发现两个目的地之间的箭头,它们定义了导航图中可能的导航操作 (action)。...android:id="@+id/FirstFragment" android:name="com.android.samples.navoverviewarticle.FirstFragment...其实我们本可以查看整个应用的层次结构 (而且我也十分鼓励大家这么做,这有助于可视化标准视图层级中所发生的事),但是我只想选择几个特定的视图来解释。...它在导航图中提供了一个可能目的地的菜单栏。NavigationView 其中一个很酷的特性是,您可以使用菜单项的 ID 自动地导航到对应菜单项关联的目的地,从而避免了手动创建基于菜单选择的重复代码。

    1.7K30

    实践 | Google IO 应用是如何适配大尺寸屏幕 UI 的?

    尽管今年的大会没有发布新版的 Google I/O 应用,我们仍然更新了代码库来展示时下 Android 开发最新的一些特性和趋势。...至于导航图,日程的目的地页面现在是双窗格 Fragment,而每个窗格中可以展示的目的地都已经被迁移到新的导航图中了。...不过,我们不能直接从会议列表导航到会议详情,因为两者如今已经被放到了不同的窗格中,也就是存在于不同的导航图里。...另一方面,整个 Fragment 没有备用布局,所以让我们看看在不同的配置下实现所需的样式和交互都用到了哪些技巧吧。...,然后同时设置 android:orientation 和 app:spanCount 实现布局管理器的配置。

    2.1K20

    在功能模块中使用导航 | MAD Skills

    SafeArgs 使用深层链接导航 打造您的首个 app bundle 深入浅出 NavigationUI 使用导航组件: 条件导航 导航: 嵌套导航图和 如果您更倾向于观看视频而非阅读文章,请 点击这里...中 navigation 标签的 id 属性,原因在于,如果导航图是使用 include 标签引入的,那么 Dynamic Navigator 库会忽略根元素的 id 属性。...,要使动态引入 (include-dynamic) 生效,咖啡菜单项的 id 值需要与导航图名称相匹配,而不是目的地页面 id: android="http://schemas.android.com...导航库已经内置了对 进度 Fragment 的支持。我所需要做的就是创建一个继承了 AbstractProgressFragment 的 Fragment。...之后,我使用了嵌套图和 include 标签来组织导航图并将应用模块化以节省用户的网络和存储空间。至此,我们已经完成了该应用,是时候去享用一杯美味的咖啡和甜甜圈了!

    55610

    使用导航组件: 对话框目的地 | MAD Skills

    为了创建这个目的地,首先我们创建所需要的对话框类。 首先,我们在 UI 中创建一个带文本占位符的布局。在布局资源文件夹下创建一个名为 my_dialog.xml 的文件。...这是我解决这个问题之后的代码: <dialog android:id=”@+id/myDialog” android:name=”com.android.samples.navdialogsample.MyDialog...) } 我们只需使用适当的 id 将导航目的地改变为对话框,这里的 id 正是在导航图中创建目的地时所生成的。...() 函数 (使用 Directions 对象导航) 的语法和之前通过 Basic Activity 模版创建的 (导航到一个通过 R.id.action_FirstFragment_to_myDialog...其次,我们从 FAB 导航时 (不需要传递参数给 Directions 对象) 调用 navigate() 方法和从甜甜圈列表中任一列表项导航时 (需要传递 donut.id) 不太一样。

    1.4K30

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

    Navigation(导航) 什么是Navigation 在Android开发当中,导航是指允许用户再应用内进入和退出不同内容的交互组件。...导航组件的构成 导航组件由三个关键的部分组成: Navigation graph(导航图): 这是一个包含所有位置导航相关信息的XML资源文件。...这里包括应用程序当中的所有单独的内容区域(被称为目标视图),以及连接在应用程序当中各个“目标”的路径。 NavHost: 一个用于展示导航图当中目标视图的空的容器。...当我们通过导航浏览我们的应用程序的时候,我们可以通知NavController我们要沿着导航图当中的特定的路径进行导航,或者直接导航到特定的目的地。...可以供标准化的过渡动画资源。 实现和处理深度链接。 涵盖了一些导航UI模式,比如只需要很少的额外工作就能实现抽屉导航和底部导航。

    1.1K00

    为任意屏幕尺寸构建 Android 界面

    我们先来进行第一项优化,使用 NavRail 而非底部应用栏,首先我们要考虑的是导航模型,所幸我们不会更改很多具体的视图,仅仅只会更改导航方式,因为 NavRail 会一直存在于整个视图体系中,可以通过它导航到任何其他视图...最后,在设置 NavRail 菜单栏的 ID 来匹配现有导航目的视图的 ID,再在 MainActivity 中为 NavRail 设置 NavController: 的一个简单方法是使用 SlidingPaneLayout,它的优势在于可以轻松复用现有的布局代码,以下是目前更新后的导航图: △ 更新后的导航图 我们可以通过 NavigationRailView...-- 顶层导航图 --> id/nav_tasks"...> <fragment android:id="@...所有的界面都是通过在代码中描述而成,这样也就很容易在运行时做出关于界面样式的决策,而在传统的视图系统中,我们通过对不同屏幕配置进行编译,从而实现对视图的配置,这两者有着巨大的不同。

    4.2K20

    导航: 嵌套导航图和 | MAD Skills

    那么,接下来,让我们打开 Android Studio 开始学习如何在模块上使用导航吧。 嵌套导航图 我们从导航图开始。嵌套图允许您在父导航图中将一系列目的地页面分组。...我们看一眼导航图,coffeeList 和 coffeeEntryDialog 目的地页面非常适合转换为嵌套图。...移动到嵌套图 现在我们回到代码界面,您可以看到嵌套图仅仅是根图中的新导航图: android="http://schemas.android.com/apk/res...由于 CoffeeList 是所引用图的起始页面,所以我可以使用图 id 来导航到这个图。如果您现在试着运行应用,所有的功能会和之前一样。...:coffee") implementation project(":core") //.. } 请注意这里的导航图没有任何变化,它不受这些修改的影响: △ 导航图没有发生变化 现在如果运行应用

    1.6K30

    在应用中导航时使用 SafeArgs | MAD Skills

    SafeArgs 是一个 gradle 插件,它可以帮助您在 导航图 中输入需要传递的数据信息。然后它会生成代码帮您解决创建 Bundle 时所需完成的冗长的过程,并且在接收侧提取数据。...这是一个您不应该忽略的提示 接下来,在导航图中创建并传递所需的数据。 ? 需要数据的目标界面是对话框 donutEntryDialogFragment,它需要知道所需显示的对象的信息。...这里我希望传递的是所需显示的甜甜圈信息,所以数据类型设置为 Long,和数据库里的 id 的数据类型一致。 ?...添加数据的时候会显示这个对话框,这里可以输入数据类型、默认值和其它所需的信息 需要注意的是当我定义数据类型为 Long 的时候,Nullable 的位置会变成灰色。...)) 这里的代码和用户点击悬浮操作按钮的代码相似,只不过这里将表项的 id 传了进去,告诉对话框它要编辑一个已有的元素。

    1.6K20
    领券