Android Studio 4.1 中 ,Design Tools 的这些功能有重大改进...
The following article is from 谷歌开发者 Author Android
腾讯视频链接 https://v.qq.com/x/page/g3214xjmznv.html Bilibili 视频链接 https://www.bilibili.com/video/BV1Lt4y1C7Fp/
Layout editor (布局编辑器)
ConstraintLayout 1.1 首次引入了 Barriers 和 Guidelines 这样的 ConstraintHelper,它们可以让一个不可见的 view 引用多个 widget,并在无需重复编写代码的条件下对 widget 进行分组对齐 (group-align)。在 ConstraintLayout 2.0 版本中,我们继续扩展了 helper 的概念: 添加了诸如 Flow 和 Groups 这样的 VirtualLayouts,来允许将某些行为同时作用到所有被引用的 widget 上。例如,使用 Flow,可以很轻松地通过全局调整界面间的间隔 (gap) 和环绕样式 (wrap style) 来对 view 进行水平或者垂直方向的排版。
VirtualLayouts https://developer.android.google.cn/reference/androidx/constraintlayout/helper/widget/package-summary
在 Android Studio 4.1 中,我们希望能够在 IDE 中很好地支持这些 helper 的功能,从而达到更好的交互体验。因此,我们以用户的视角,摸索出了一套从找到相应的功能、自主进行创建、再对所创建出的项目进行更改这一整个使用历程,以此为基础,我们进一步去着手提高每一步操作过程的使用效率。例如,我们在 Palette 中添加了一个 Helpers 栏,以便让用户能够轻松查找并使用那些可用的 helper 工具。
Palette 中新增 Helpers 一栏
多选情况下的 helper 创建
通过新的属性面板选项操作 helper
设计时 (Design-time) 的属性开关
工具属性
https://developer.android.google.cn/studio/write/tool-attributes
因为工具属性的关系,导致 Layout Editor 中的预览效果和模拟器的渲染效果有差异
使用新的工具属性开关
通过这一开关,我们想为用户提供更精准的、非设计时 (non-design-time) 的渲染效果,并让用户能够意识到是否正在使用这些工具属性。
正如上一节所说,Visibility (可见性) 是 view 的一个非常常用且重要的属性,尤其是当您需要根据不同的条件和特定的逻辑来显示/隐藏某一 UI 时,比如只允许已通过验证的用户查看相应用户数据这一场景,它就显得格外有用。因此,我们希望通过提供一种快速的方法来轻松地在 Layout Editor 中设置 visibility 的 show/hide/gone (显示/隐藏/移除) 三种状态,从而优化 visibility 属性。
在 Component Tree 中使用新的 visibility 属性控制器
Component Tree 使用图标展示不同的 visibility 状态
我们同时提供了 tools 和 android 两个 visibility 的命名空间,以覆盖不同的用户需求。这里要注意的是,在设计时 (design-time) 中,tools 命名空间会覆盖 android 命名空间下的 visibility 属性,这一行为也会在控件上反映出来 — 如果您设置了 tools:visibility,它会在 UI 上以高优先级体现出来。例如,在下面的截图中,student 设置了 android:visibility = visible 和 tools:visibility = gone,这种情况下 tools:visibility 的优先级更高,便以下图中的形式体现了出来。
tools 覆盖了 android 命名空间下的 visibility 属性
键盘快捷键和映射的设置
我们都认识到键盘快捷键在提高生产力和开发效率上的重要性。在 Studio 4.1 版本中,我们对 Design Tools Suite 中所有的快捷键进行了重新审视,并将它们都注册到了 Preferences > Keymap 中,您可以探索相应的快捷键设置,也可以对其进行更改,从而使其成为最适合您工作方式的开发工具。
Design Tools Suite 中所有的快捷键 https://developer.android.google.cn/studio/intro/keyboard-shortcuts
包含 design editor 快捷键的键盘映射设置
Transform 面板
有一些开发者反馈,希望能够在处理 view 的 Transform 属性时提高操作的精度,我们在这一版中也对此进行了改进。为了更轻松地调整 view 的 Transform 属性,我们添加了可视化显示功能来实时展示出 view 的 3D 转换效果,并增加一个滑块来进行更精细的操作。在属性面板中,一旦选择一个 view 之后,便能在 "Transform" 中对控件进行调整。
Resource manager (资源管理器)
Drawable 选择器
自动下载 Vector asset 中的图标资源
Material.io https://material.io/resources/icons/?style=baseline
Navigation editor (Navigation 编辑器)
在 Split View 中使用图状结构展示目的地 (Destination)
在 Split View 中以图状结构展示目的地
顺道补充一下,这种方式对我们代码库的健康很有帮助,因为它可以在我们所有的设计工具中复用通用组件。
Deeplink 对话框支持新属性,并支持自动填充
Navigation 2.3.0 为 deeplink 引入了两种新的属性类型: MIME 和 Action。为了使 Android Studio 的设计工具支持这一功能,我们在 Navigation Editor 中的创建 DeepLink 对话框中加入了这两种属性,并增加了自动填充和验证的功能。
Navigation 2.3.0 https://developer.android.google.cn/jetpack/androidx/releases/navigation#2.3.0-alpha01
Motion editor (动作编辑器)
动作关键帧路径的图形化编辑
Transition 曲线编辑器
同上述 Layout Editor 中 Transform 面板类似,我们也收到了很多开发者的反馈,认为用纯数字来制定 Transition 曲线很困难。因此,在 4.1 版本中,我们为 Motion Editor 添加了对 GUI 曲线编辑器的支持,允许开发者通过可视化的方式和控制手柄来完善想要的曲线效果。
使用 Transition 曲线编辑器
同以往一样,如果您在使用这些工具时遇到任何问题,或者有一些提升您工作效率的新想法,请在我们的 Issue Tracker 里或者下方留言区提交您的建议。我们将会继续优化编辑器的性能,持续改进修复问题,并不断听取、采纳您的建议和反馈。
Jetpack Compose https://developer.android.google.cn/jetpack/compose
在 Issue Tracker 里向 Android 团队提出 Android Studio 相关的建议 https://issuetracker.google.com/issues/new?component=192708&template=840533
---END---
更文不易,点个“在看”支持一下👇