Android布局知识整理一

最近感觉有点累呀,但是还得坚持下去,把知识一点一点梳理。今天稍微放松放松,整理一些小的知识点,大框架过两天再看。好了,下面直接进入今天的主题。Android布局知识整理。


一提到布局,面试官常问的问题是你用过include,merge和viewstub吗。

下面就来说说这三个布局。

include

是布局重用,这个一般在项目中用的比较多。使用方法为<include layout="@layout/titlelayout"/>

其中titlelayout是一个xml的布局文件。这行代码就表示你在xml文件中include的位置引入了titlelayout布局。

include的好处是可以减少你的代码量,当遇到需要加载同样的布局时,就可以使用include方法。


merge

减少视图层级,当你使用include标签时,如果是在一个linearLayout中引入了一个linearLayout,引入的那个线性布局很有可能就是多余的。这时就可以使用merge标签。比如一个布局中外层使用merge标签,里面放了两个button,当系统添加该布局文件时,就会忽略merge节点,直接添加两个button。


viewstub

需要时候才加载。用法为(ViewStub) findViewById(R.id.stub_impoort)或者View view = ((ViewStub) findViewById(R.id.layout)).inflate();

注意,ViewStub目前暂不支持merge标签。


过度绘制


过度绘制主要指的是每一层,每个控件的背景颜色,图片。当一个布局中有多个view重叠时,尽量去除不必要的背景颜色,这样可以减少过度绘制。

另外,我们应尽量减少布局层数。如可以用相对布局代替的,就不用线性布局。






猜你喜欢

转载自blog.csdn.net/kongou/article/details/75948655