系列文章:
CoordinatorLayout系列(一):Behavior
CoordinatorLayout系列(二)AppBarLayout
CoordinatorLayout系列(三)AppBarLayout之layout_scrollFlags
CoordinatorLayout系列(四)CollapsingToolbarLayout
CoordinatorLayout系列(五)例子
CoordinatorLayout是google在Material Design上提出的一个布局样式,这个布局的主要功能就是实现一个view跟随另一个view变化,具体变化逻辑,由Behavior来实现,一个好的跟随效果可以展现出很酷的动画,因此这个系列就从Behavior入手,来剖析CoordinatorLayout的细节。
一、使用方法
首先摆出效果:
功能就是实现一个球跟随另一个球移动,两个球的中点就是整个界面的中点。
如果没有CoordinatorLayout的话,那上面的效果也是很好实现的,只要在一个球的onTouchEventListener中,按逻辑移动另一个球就行,但是这样耦合度比较高,当多个view联动时,代码看起来相对要乱,不好处理。CoordinatorLayout就是专门为这么一种情况设计的布局,充分的解耦了各个联动view之间的逻辑。
布局:
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 主动view,也叫dependency -->
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/dependency"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginTop="200dp"
android:src="@drawable/ic_launcher_background" />
<!-- 被动view,也叫child -->
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/child"
android:layout_width="80dp"
an