Android Studio 中MotinLayout的简单使用
创始人
2024-03-15 13:43:25
0


一、什么是MotionLayout
MotionLayout 是一种布局类型,可帮助您管理应用中的运动和微件动画。MotionLayout 是 ConstraintLayout 的子类,在其丰富的布局功能基础之上构建而成。

二、使用MotionLayout的准备
1.添加MotionLayout依赖项

要在项目中使用 MotionLayout,请向应用的 build.gradle 文件添加 ConstraintLayout 2.0 依赖项。如果您使用了 AndroidX,请添加以下依赖项:

 dependencies {implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta1'}

如果您没有使用 AndroidX,请添加以下支持库依赖项:

dependencies {implementation 'com.android.support.constraint:constraint-layout:2.0.0-beta1'}

本人配置如下(使用的是AndroidX,加入了第一个依赖项):

1)在这里插入图片描述
2)在这里插入图片描述
2、创建MotionLayout文件

MotionLayout 是 ConstraintLayout 的子类,因此您可以通过替换布局资源文件中的类名称,将任何现有的 ConstraintLayout 转换为 MotionLayout,如下面的示例所示:

 

下面的完整示例 MotionLayout 文件可用于创建图 1 中的运动:



3、创建MotionScene文件

在上述的 MotionLayout 示例中,app:layoutDescription 属性引用一个 MotionScene。MotionScene 是一个 XML 资源文件,其中包含相应布局的所有运动描述。为了将布局信息与运动描述分开,每个 MotionLayout 都引用一个单独的 MotionScene。请注意,MotionScene 中的定义优先于 MotionLayout 中的任何类似定义。

下面的示例 MotionScene 文件描述了图 1 中的基本水平运动:


其中:
Transition 包含运动的基本定义。

motion:constraintSetStart 和 motion:constraintSetEnd 指的是运动的端点。这些端点在 MotionScene 后面的 ConstraintSet 元素中定义。

motion:duration 指定完成运动所需的毫秒数。

OnSwipe 可让您通过轻触控制运动。

motion:touchAnchorId 指的是您可以滑动并拖动的视图。

motion:touchAnchorSide 表示我们从右侧拖动视图。

motion:dragDirection 表示拖动的进度方向。例如,motion:dragDirection=“dragRight” 表示当您向右拖动时,进度会增加。

ConstraintSet 是定义描述您的运动的各种限制条件的位置。在此示例中,我们为运动的每个端点定义一个 ConstraintSet。这些端点垂直居中(通过 app:layout_constraintTop_toTopOf=“parent” 和 app:layout_constraintBottom_toBottomOf=“parent”)。在水平方向上,端点位于屏幕最左侧和最右侧。
4、创建过程

1.可手动修改文件成MotionLayout文件和在XML文件下新建MotionScene文件
在这里插入图片描述
2.自动创建:

打开布局文件找到Component Tree栏选中后选择ConstraintLayout,点击后会自动将ConstraintLayout文件转换为MotionLayout文件,并在res/xml文件下自动生成MotionScene文件
在这里插入图片描述
在这里插入图片描述
三、MotionLayout的简单使用
实现组组件的基本触控移动

MotionLayout简单使用

图一 MotionLayout简单使用

四、总结
MotionLayout的使用可以让布局增加更多的可玩性,且入门难度不高,可以在平时的设计中应用,以此达到给设计的app锦上添花的效果。

作者:王乾钧

原文链接

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...