LinearLayout
官网链接https://developer.android.com/guide/topics/ui/layout/linear.html
特点:每一个子视图放在前一个子视图之后,位于单行或者单列中,具体为行或者列,由布局自身指定,通过
android:orientation=”horizontal/vertical”来指定
android:layout_gravity指定这个控件应该放在视图中的什么位置,可选参数有
Top:把控件在不改变大小的情况下,放在容器的上方Bottom: 把控件在不改变大小的情况下,放到容器的下方
Left:把控件在不改变大小的情况下,放到容器的左方
Right: 把控件在不改变大小的情况下,放到容器的右方
Center_vertical:把控件在不改变大小的情况下,放到容器的垂直中央
Fill_vertical:拉伸垂直方向的大小以填充容器的竖直方向(需要时)
Center_horizontal:把控件在不改变大小的情况下,放到容器的水平中央
Fill_horizontal:拉伸水平方向的大小以填充容器的水平方向(需要时)
Center:把控件在不改变大小的情况下,放到容器的中央
Fill:(在需要时)同时拉伸水平和垂直方向的大小填充容器
Clip_vertical:(还没弄懂)
Clip_horizontal:(还没弄懂)
Start:把控件在不改变大小的情况下,放到容器的起始部分
End: 把控件在不改变大小的情况下,放到容器的结束部分
android:gravity :这个属性设置的是控件自身的位置,就比如说一个按钮需要设置text,那么这个属性就是设置text在按钮中的位置,可选参数与android:layout_gravity一模一样,这个时候就相当于将自身看做容器。
android:layout_weight:这个属性用于设置控件占父容器的比重,接受浮点型数,比如说我将一个控件设置为1,则它会填充剩余的空间
你也可以指定另外控件的layout_weight值,这时候它们会按照指定的值来设置比例
另外还有layout通用的(margin是边缘的意思)
官网链接:
https://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html
Android:layout_marginBottom
Android:layout_marginTop
Android:layout_marginLeft
Android:layout_marginRight
Android:layout_marginStart
Android:layout_marginEnd
这几个属性都是指定当前控件该距离相应的边多少单位,接受的是维度单位,如dp ,px等
相应的还有动态设置属性的方法
void setMargins (int left,
inttop,
intright,
intbottom)
其实这个地方还可以拓展一下
在https://developer.android.com/reference/android/view/View.html
介绍view的时候,这里边介绍了一些view的基本属性
跟位置大小有关的有下面几个:
Position 位置,用width和height的坐标对来表示,单位为像素(pixel)要取得这两个值,需要调用getLeft()和getTop方法,但是它们的值都是相对与直接父容器而言的
Size,padding and margins
Size其实包含了两对宽度和高度值,其中一对叫measured width 和measured height,决定了这个view在它的父控件中应该为多大。
第二对呢就是它的实际宽度和高度。Width和height,相应的方法getWidth()和getHeight()
Padding:填充的意思,用像素来表示, 用于填充view中的内容,比如设置left padding为2,那么这个view中的内容就会向右两个像素,可指定四个方位(top bottom left right)