相对位置:
android:layout_above 将该控件的底部置于给定ID的控件之上;
android:layout_below 将该控件的底部置于给定ID的控件之下;
android:layout_toLeftOf 将该控件的右边缘与给定ID的控件左边缘对齐;
android:layout_toRightOf 将该控件的左边缘与给定ID的控件右边缘对齐;
————————————————————————————————
边缘重合或者平行
android:layout_alignBaseline 将该控件的baseline与给定ID的baseline对齐;
android:layout_alignTop 将该控件的顶部边缘与给定ID的顶部边缘对齐;
android:layout_alignBottom 将该控件的底部边缘与给定ID的底部边缘对齐;
android:layout_alignLeft 将该控件的左边缘与给定ID的左边缘对齐;
android:layout_alignRight 将该控件的右边缘与给定ID的右边缘对齐;
android:layout_alignParentTop 如果为true,将该控件的顶部与其父控件的顶部对齐;
android:layout_alignParentBottom 如果为true,将该控件的底部与其父控件的底部对齐;
android:layout_alignParentLeft 如果为true,将该控件的左部与其父控件的左部对齐;
android:layout_alignParentRight 如果为true,将该控件的右部与其父控件的右部对齐;
————————————————————————————————
居中
android:layout_centerHorizontal 如果为true,将该控件的置于水平居中;
android:layout_centerVertical 如果为true,将该控件的置于垂直居中;
android:layout_centerInParent 如果为true,将该控件的置于父控件的中央;
————————————————————————————————
指定移动像素
android:layout_marginTop 上偏移的值;
android:layout_marginBottom 下偏移的值;
android:layout_marginLeft 左偏移的值;
android:layout_marginRight 右偏移的值;
只需要设置ListView的transciptMode 属性,有distabled、normal、alwaysScroll三个属性,该属性含义:用于控制listview是否自动滑到最底部,用来显示最新条目。常用于ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode属性可以将Android平台的控件(支持ScrollBar)自动滑动到最底部。如:android:transcriptMode="alwaysScroll" 或 android:transcriptMode="normal"
CoordinatorLayout学习: https://blog.csdn.net/shuijianbaozi/article/details/79655183
- CoordinatorLayout的使用核心是behavior.
- Child当然是子View了, 就是CoordinatorLayout的子View, 更准确的来说, Child是指CoordinatorLayout父布局下要执行动作的子View. 也被称为观察者. 而Dependency是指Child依赖的View. 也被称为被观察者.简单点说, 就是如果Dependency这个View发生了变化, 那么Child这个View就要发生相应变化. 具体变化就是Behavior引入的.Child发生变化的具体执行代码都是放在Behavior这个类里面.
- 实现步奏:首先定义一个类, 继承CoordinatorLayout.Behavior<T>, 其中泛型参数T是我们要执行动作的View类, 也就是Child。
必须重写带双参的构造器, 因为从xml反射需要调用
public MyBehavior(Context context, AttributeSet attrs) {
super(context, attrs);
}
类中实现Behavior的两个方法:
判断child的布局是否依赖dependency:
public boolean layoutDependsOn(CoordinatorLayout parent, T child, View dependency)
当dependency发生改变时(位置、宽高等),执行这个函数,返回true表示child的位置或者是宽高要发生改变,否则就返回false
public boolean onDependentViewChanged(CoordinatorLayout parent, T child, View dependency)
4.在child布局中加app:layout_behavior=".MyBehavior",引入刚才创建的Behavior(然后在主类中操作dependency,child执行相应逻辑)