开发项目的过程中,我们会发现,有很多页面都需要一种同样的布局,来做同样的功能。例如下图的效果,我在开发项目中,大部分页面,都需要这个布局,并且都做一件事:返回前一页。
Paste_Image.png不会偷懒的程序员,不是好程序员。
第一种程序员:每次有新页面需要这个布局,就复制粘贴,简直是最勤快的笨程序员了。
第二种程序员:稍微聪明一点,会使用<include>标签来引入这个布局。但是这个方法依旧不够完美。因为还是要每次代码写onClick,如果页面真的很多的话,我选择狗带。
第三种程序员:会使用自定义组合控件来帮助自己。每次只需要在xml里引入自己的控件, so easy!妈妈再也不用担心我的代码了!
当然,我才不会说,这是我的进化史!T_T。。。
自定义组合控件,说简单也不简单,说难也不难。(ps:我在说废话。)
好了,开始写一个通用标题栏吧!
1.看图说话,很明显,这个组合控件,需要一个ImageView和一个TextView。有很多高手,喜欢直接用代码写出来。但是我头脑简单,选择使用xml。我建议新手使用xml。
2.写好了布局,看一下有哪些地方需要动态设置的,很明显,titleText这个TextView的值是需要我们单独设置的,毕竟不可能每个页面标题一样。于是,我们需要去attr文件里设置自定义属性。
Paste_Image.png3.ok!万事俱备,只欠起飞。新建一个class文件,类名和<declare-styleable>的name名称一样并继承LinearLayout。让我描述代码,这件事真麻烦,蓝瘦香菇。还是看代码吧T_T
Paste_Image.png若是你看不懂,我只能说,没关系,孩子。你的未来还很长,不着急。
若是看懂了,恭喜你,你又成长了!
xml里只需引入:
好了,其他不用管了。点击事件控件里已经写好,好好去聚焦其他的内容吧。
网友评论