标签:
如果在一个app中有大量的相似的布局条目时,可以考虑自定义组合控件,当然也可以使用include标签。本人认为在一定程度上认为include标签比自定义组合控件要简单。自定义组合控件不仅要继承控件或者继承布局,而且要重写一些涉及到的方法,有时候还要自定义属性文件,必要的时候还要自定义方法,达到java文件中控制子控件的属性。如果控制不好,自定义组件就会出现莫名其妙的错误,比如自定义组合控件实例化失败,属性值加载失败或找不到属性文件。
所以,一般情况下,如果不是特别复杂的布局条目时,本人推荐使用include标签。
下面是include具体使用方法:
首先,必须重建一个标题栏布局文件,比如R.layout.title
然后使用<include layout=布局文件名/>
如果想主布局中控制标题栏布局,就必须指定android:layout_width和android:layout_height。如果不指定这俩个属性的话,标题栏布局就默认在某一个位置,而不允许你在布局文件或在.xml中控制它的位置及大小。
这样,就可以用findViewById(int id)来找到标题栏布局中的子控件,上面所描述的只是添加一个标题栏布局
如果想在一个布局中添加多个相似的标题栏布局的话,也是使用include标签。但是,多个标签找不到子控件并控制其属性。所以为多标签的标题栏布局添加id标示,然后在java文件中用代码控制其属性。
具体格式:findViewById(id(布局标题栏)),找到该标签并为标签添加引用,将findViewById(id(布局标题栏))获得的布局转型,将引用指向找到的标签。最后,就可以使用
引用.findViewById(int id)查询标签内的子控件。当然也可以通过布局参数来控制标签的位置及大小。
注意:如果为标签指定具体大小值,系统会根据标签的框架来布置子控件。如果子控件太大而超出了标签的边框,系统不会显示超出标签框架之外的部分,这样会影响布局。所以布局标签应该首先考虑标签的框架能不能包裹子控件。当然,将标签设置成包裹内容wrap_content是个不错的选择,系统会根据标签内的子控件的大小来调整标签框架的大小,以适应子控件,使得子空间能够完全显示出来,达到预想的效果。
标签:
原文地址:http://blog.csdn.net/ioe2463074657/article/details/51364441