第二章笔记分享

Android开发布局详解

比较常用的控件 三

WebView:加载网页

ListView:显示列表

GridView:显示表格式列表

ScrollView:内容可滚动视图

SufaceView:非常重要的绘图容器(很多游戏都是用sufaceview做的)

五大布局:

Linearlayout :线性布局

像一条线一样布局,两大特点:

1.orientation:vertical纵向排列

horizontal水平排列

2.layout_weight

weightsum:比例的方式来排布

宽度设置成0dp(水平布局的情况下)。

注释:commas+/

android的坐标是从左到右和从上到下的。

Relativelayout :相对布局

xmlns:xmlns(name space)这个xml的命名空间是Android,如果不加这一行,那么后面就不能引用Android的内容。

资源文件的名字是不能有大写的。

button为例:

layout_alignParentBottom = "true"

layout_alignParentRight="true"

元素之间,在后面的会盖住之前的内容。

解决方案:

给上面一个button一个id:id=“+id/button"

下面的给:layout_above = “@+id/button"

没有必要的属性要删除,很有可能会影响布局。因为Android会解析xml对布局进行计算,即使有矛盾,也会根据一定的原则来选择一个值。

layout_below

layout_toLeftOf

alignLeft:左边对齐

alignTop

父布局的上下左右

朋友的上下左右

朋友的左右上下对齐

layout_margin = “100dp"

layout_marginLeft = “100dp” 外边距左边距100dp

paddingLeft = “40dp”  内边距左边距40dp

FrameLayout :帧布局

一层一层叠上去的。

AbsoluteLayout :绝对布局

靠绝对坐标来定位,不建议使用。

layout_x

layout_y

TableLayout :表格布局

类似于做了一个表格。

TableRow

前三种使用频率加起来超过98%,后两种使用较少

Android布局技巧与优化

温故知新

基本控件

五大布局

UI = 控件+布局

思考:布局是如何绘制的?

树形的解析

linearlayout默认水平排列

可能会产生哪些性能问题?

层次太多导致加载速度变慢

如何优化?

减少层次

减少布局层次的重要性

官方建议布局层次:最多10层(缩水后就更少了)

减少层次后能运行在更多手机上

如何减少

学会利用相对布局

如何利用相对布局减少层次?

利用相对布局替换线性布局

stack overflow:层次太多会导致栈溢出(例子:小米初期)

建议工作中不要拖动,熟练后手写布局

控件的组合

有些效果可以由控件和控件的组合产生

如何组合

一些有用的属性

布局如何引用相同的部分

:重用布局

      ????为何是成为背景

减少视图层级

:需要时才加载

总结:如何优化布局

减少层次

删除无用布局

布局结构要清晰

选择合适的布局

小技巧:

不要嵌套多个使用layout_weight属性的LinearLayout

两个工具:Android lint帮你删除无用的资源,无用的文件、引用、类、布局、控件

HierarchyViewer帮你分析你的布局的层级

你可能感兴趣的:(第二章笔记分享)