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

—–本文内容全部来自于慕课网上的用户笔记,我只是整理过来—-
使用线性布局
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

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

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

layout_heightlayout_width

Tips:布局中可以套布局(例:LinearLayout可以再套LinearLayout布局或其他布局)
一个orientationhorizontalLinearLayout中有一个TextView,则设置TextViewgravity属性为right是不起作用的。因为,水平的LinearLayout要从左边开始依次放置布局,所以设置TextViewgravity属性为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"//该控件占据几列的宽度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值