Android界面显示与LayoutInflater

    |     2015年6月11日   |   Android UI界面   |     0 条评论   |    1584

LayoutInflater主要是用于加载布局的。而刚接触Android的朋友可能对LayoutInflater不怎么熟悉,因为加载布局的任务通常都是在Activity中调用setContentView()方法来完成的。其实setContentView()方法的内部也是使用LayoutInflater来加载布局的.

先来看一下LayoutInflater的基本用法:
第一步:

LayoutInflater mInflater = LayoutInflater.from(context);

第二步:

ViewGroup parent;
View v = mInflater.inflate(R.layout.item_simpleadapter_view, parent,true);

View v = mInflater.inflate(R.layout.item_simpleadapter_view, parent,false);

View v = mInflater.inflate(R.layout.item_simpleadapter_view, null);

注:
public View inflate(int resourceId, ViewGroup root, boolean attachToRoot)

如果设置了ViewGroup root参数,且attachToRoot设置为false的话,
则会从root中得到由layout_width和layout_height组成的LayoutParams,
就会对我们加载的视图View设置该LayoutParams。

如果设置了ViewGroup root参数,且attachToRoot设置为true的话,
则将我们加载的视图做为子视图添加到root视图中。

如果我们ViewGroup root设置为空的话,就直接返回我们创建的视图;

Android界面显示的原理

任何一个Activity中显示的界面其实主要都由两部分组成: 标题栏和内容布局。
标题栏就是在很多界面顶部显示的那部分内容,可以在代码中控制让它是否显示。
内容布局就是一个FrameLayout,这个布局的id叫作content,我们调用setContentView()方法时所传入的布局其实就是放到这个FrameLayout中的,这也是为什么这个方法名叫作setContentView(),而不是叫setView()。

最后再附上一张Activity窗口的组成图吧,以便于大家更加直观地理解:
20131218231254906

转载请注明来源:Android界面显示与LayoutInflater
回复 取消