我们的基本布局包含几个视图,代表了我们的轮播项目:
通过MotionLayout创建具有三个状态的ConstraintSet(请确保为它们提供ID):
-
previous
-
start
-
next
如果start状态与该基本布局相对应,则previous的状态则应该表示为轮播项目向右移动一个。
例如,假设我们有5个视图:处于开始状态的A,B,C,D,E。
start时,B,C,D可见,而A和E在屏幕外。我们要设置previous的状态,以使A,B,C,D的位置现在位于B,C,D,E所在的位置,并且视图从左向右移动。
在next状态中,需要相反的情况发生,与B,C,D,E移动到其中A,B,C,D分别为和的观点从从右向左移动。
至关重要的是,start状态必须恰好位于原始视图的起始状态。这种无限轮播的错觉的方式,实际上是将实际视图移回它们的位置,然后使用新的匹配内容将其重新初始化。下图显示了这种机制(请注意“ item#”值):
转场Transitions
在ConstraintSet中定义的这三个状态,在start和next,以及start和previous之间创建两个Transitions:向前和向后。让我们添加一个OnSwipe,以通过手势触发Transitions,例如:
添加轮播
一旦创建了这个基本的Motion Scene,我们只需要在布局中添加一个Carousel Help并引用这些视图即可(以实现上一个/下一个动画的顺序)。
Carousel Helper还需要设置几个属性:
- app:carousel_firstView:表示轮播的第一个元素的视图,在我们的示例中为C,即首先展示默认居中的视图
- app:carousel_previousState:ConstraintSet中previous状态的ID
- app:carousel_nextState:ConstraintSet中next状态的ID
- app:carousel_backwardTransition:Transition在start->previous之间应用的ID
- app:carousel_forwardTransition:Transition在start->next之间应用的ID
例如,您的布局XML文件中将包含以下内容:
<androidx.constraintlayout.motion.widget.MotionLayout … >
<ImageView android:id=“@+id/imageView0” … />
<ImageView android:id=“@+id/imageView1” … />
<ImageView android:id=“@+id/imageView2” … />
<ImageView android:id=“@+id/imageView3” … />
<ImageView android:id=“@+id/imageView4” … />
<androidx.constraintlayout.helper.widget.Carousel
android:id=“@+id/carousel”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
app:carousel_forwardTransition=“@+id/forward”
app:carousel_backwardTransition=“@+id/backward”
app:carousel_previousState=“@+id/previous”
app:carousel_nextState=“@+id/next”
app:carousel_infinite=“true”
app:carousel_firstView=“@+id/imageView2”
app:constraint_referenced_ids=“imageView0,imageView1,imageView2,imageView3,imageView4” />
</androidx.constraintlayout.motion.widget.MotionLayout>
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://img-blog.csdnimg.cn/img_convert/05d4acc0c8e54b2d18933c846a07a4b2.jpeg)
最后
在这里小编整理了一份Android大厂常见面试题,和一些Android架构视频解析,都已整理成文档,全部都已打包好了,希望能够对大家有所帮助,在面试中能顺利通过。
喜欢本文的话,不妨顺手给我点个小赞、评论区留言或者转发支持一下呗
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
发支持一下呗
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!