您的位置:首页 > 移动开发 > Android开发

Android入门学习笔记整理(二)

2017-07-20 19:02 591 查看
—–本文内容全部来自于慕课网上的用户笔记,我只是整理过来—-

使用线性布局

http://www.imooc.com/video/1756

摘自 Joey

一、
android:layout_gravity & android:gravity
区别

1、
android:gravity
:决定其子类控件在该控件里的显示位置。

2、
android:layout_gravity
:这个是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。

Tips:

一个属性可以包含多个值,需用“|”分开,例
android:gravity="bottom|center_horizontal"


二、子控件

1、子类控件在LinearLayout中常用到的属性

android:layout_gravity=“bottom”
—— 指本身在当前父容器的XY的一个位置

android:layout_weight=“1”
—— 指本身控件占当前父容器的一个比例(整型值和小数值都可以)

2、理解

当布局中只有两个按钮

button1设置
android:layout_weight="2"
,button2设置
android:layout_weight="1"


1.android:layout_height="wrap_content"
// 视图:button1占屏幕的2/3,button2占屏幕的1/3

2.android:layout_height=“match_parent”//(相反)
//  视图:button1占屏幕的1/3,button2占屏幕的2/3


一句话解释:

在l
ayout_width
設置為
wrap_content
的時候,
layout_weight
所代表的是你的控件要優先盡可能的小,但這個小是有限度的,即
wrap_content
。(依据权重值正向只瓜分剩余的空间)

layout_width
設置為
match_parent
的時候,
layout_weight
所代表的是你的控件要優先盡可能的大,但這個大是有限度的,即
match_parent
。(依据权重值反向瓜分所有空间)

layout_height
layout_width


Tips:布局中可以套布局(例:
LinearLayout
可以再套
LinearLayout
布局或其他布局)

一个
orientation
horizontal
LinearLayout
中有一个
TextView
,则设置
TextView
gravity
属性为
right
是不起作用的。因为,水平的
LinearLayout
要从左边开始依次放置布局,所以设置
TextView
gravity
属性为
right
不起作用

相对布局RelativeLayout

http://www.imooc.com/video/1797

摘自 安颜希

android:layout_alignParentLeft="true"//子类控件相对当前父类容器靠左边
android:layout_alignParentTop="true"//子类控件相对父类容器靠上边
android:layout_marginLeft="41dp"//子类控件距离父类容器左边的距离
android:layout_marginTop="33dp"//子类控件距离父类容器上边的距离
android:layout_centerInParent="true"//子类控件相对父类容器即水平居中又垂直居中
android:layout_centerHorizontal="true"//子类控件相对父类容器水平居中
android:layout_centerVertical="true"//子类控件相对父类容器垂直居中

android:layout_below="@+id/button1"//该控件位于给定id控件的底部
android:layout_toRightOf="@+id/button1"//该控件位于给定id控件的右边
android:layout_above="@+id/button1"//该控件位于给定id控件的上面
android:layout_toLeftOf="@+id/button1"//该控件位于给定id控件的左边
android:layout_alignBaseline="@+id/button1"//该控件的内容与给定id控件的内容在一条线上

android:layout_alignBottom //该控件的底部边缘与给定ID控件的底部边缘对齐
android:layout_alignLeft //该控件的左边缘与给定ID控件的左边缘对齐
android:layout_alignRight //该控件的右边缘与给定ID控件的右边缘对齐
android:layout_alignTop //该控件的顶部边缘与给定ID控件的顶部边缘对齐


帧布局FrameLayout

http://www.imooc.com/video/1902

摘自 sioneden

1.Framelayout添加的组件无法制定放置的位置,而且后一组件会覆盖前一组件。可用于实现颜色渐变的效果,例如设置每个组件的大小渐渐减小。

2.Framelayout没有gravity属性,但可以为需要的组件添加layout_gravity属性来实现居中的效果

3.也可用于显示进度条的进度,单独ProgressBar无法显示文字

android:foreground//设置前景图,在所有子视图的前面
android:background//设置背景
android:keepScreenOn//保持屏幕唤醒
android:foregroundGravity//设置前景图的位置


绝对布局AbsoluteLayout

http://www.imooc.com/video/1927

摘自 毒龙

(基本用不到。。。)

1.功能:

绝对布局控件,又叫坐标布局控件,可以直接子元素的绝对位置(x,y)

2.缺陷:由于手机屏幕尺寸差别比较大,使用绝对定位的适应性会比较差,在屏幕上的适配有缺陷

3.属性:

android:layout_x
android:layout_y


表格布局 TableLayout

http://www.imooc.com/video/2062

摘自 qq_孤独行风_0

android:collapseColumns="0"//隐藏第一列
android:collapseColumns="0,2"//隐藏第一、第三列
android:shrinkColumns="3"//收缩第四列,当第四列的横向长度超出屏幕时将进行横向收缩,同时纵向拉伸,可能使内容不超出屏幕。
android:shrinkColumns="1,2"//收缩第二、第三列。。。
android:stretchColumns="3"//第三列横向拉伸,并占满横向的剩余空间。

android:stretchColumns="*"//所有列都横向拉伸,表现为均衡分配。

//在TableRaw下的子控件当中:
1. android:layout_column: "n"//该控件占第几列。例如在该行的第一个子控件添加android:layout_column: "1"//则它会显示在第二列,而第一列变成空的。
2. android:layout_span:"n"//该控件占据几列的宽度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: