欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android系列之Layout学习笔记

程序员文章站 2022-04-09 15:02:01
1.Linearout 权重的用法: 1.wrap_content 设置A的weight=1;B的weight=2;C的weight=3即可按照比例显示 2.fill_...

1.Linearout

权重的用法:

1.wrap_content

设置A的weight=1;B的weight=2;C的weight=3即可按照比例显示

2.fill_parent/match_parent

设置A的weight=1;B的weight=2;C的weight=3

用下面这个公式计算:

1-3=-2(只有一个屏幕,但是有三个fill_parent)

A :1+(-2)*1/6=2/3

B :1+(-2)*2/6=1/3

C :1+(-2)*3/6=0

经过test发现关于在父容器中设置gravity和控件中设置layout_gravity的矛盾显示:

父容器的orientation设置成什么,父容器的什么方向的操作就可以掩盖子控件,而在另一个方向上则是子控件的操作掩盖父容器的操作。由此也可以看出是无法将两个子控件一个放在左上角,另一个放在右下角的。

2.RelativeLayout

1.margin和padding的区别

margin是相对于控件来说的,而padding是相对于控件中的内容来说的

3.TableView

三个常用属性:

android:collapseColumns:设置需要被隐藏的列的序号
android:shrinkColumns:设置允许被收缩的列的列序号

android:stretchColumns:设置运行被拉伸的列的列序号

应该注意的是序号从0开始

个人认为Table View还有一个优点,它可以通过增加无用控件来达到适配各种机型的目的;

4.FrameLayout

前景图像:永远处于帧布局最上面,直接面对用户的图像,就是不会被覆盖的图片。

两个属性:

android:foreground:*设置改帧布局容器的前景图像android:foregroundGravity:设置前景图像显示的位置

这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件!后续添加的控件会覆盖前一个!虽然默认会将控件放置在左上角,但是我们也可以通过layout_gravity属性,指定到其他的位置!

5.GridLayout

android系列之Layout学习笔记

step 1:先定义组件的对其方式 android:orientation 水平或者竖直,设置多少行与多少列step 2:设置组件所在的行或者列,记得是从0开始算的,不设置默认每个组件占一行一列step 3:设置组件横跨几行或者几列;设置完毕后,需要在设置一个填充:android:layout_gravity = "fill"

因为GirdLayout是4.0后才推出的,所以minSDK版本要改为14或者以上的版本,不然写布局代码的时候,这玩意就会莫名其妙地出错,说找不到这个GridLayout,当然,如果你要低版本兼容的话,就要看下面的内容了!

低版本sdk如何使用GridLayout:

解决方法很简单:只需要导入v7包的gridlayout包即可!v7包一般在sdk下的:sdk\extras\android\support\v7\gridlayout目录下如果你没有的话,也可以到这里下载: gridlayout_v7_jay.rar 但是用的时候,标签却是这样写的:

6.AbsoluteLayout

这个布局很少用到,就先不mark啦。

7.今天看小例子收获的一个知识点