自定义ToolBar

要点:

1.自定义布局,添加到ToolBar中

2.自定义属性,如Title,back键的图片

3.自定义Class继承Toolbar,读取自定义属性,对Toolbar的布局显示,内容进行设置,最后需要对外公开一些函数用于设置标题、监听等。下面通过步骤来详细说明。

下面就来进行自定义ToolBar的封装


步骤:

1.自定义布局toolbar.xml,这里是自定义的星座App的toolBar,比较简单,只有一个返回按钮,和一个title。如果是复杂点的项目还可以在toolBar中添加搜索栏,右侧按钮等。


7753368-39b4fd57268e87c3.png
自定义属性文件attrs.xml

2.在values文件夹下新建attrs.xml文件,用于存放一些自定义属性,如下图所示:

其中leftButtonIcon,左侧按钮图标,类型为reference,引用类型。myTitle,标题,类型为string。showleftButton:是否显示左侧图标。

3.自定义Class继承ToolBar,代码的主要工作是初始化界面还有监听器,对外公开操作的接口。

初始化界面的时候需要把自定义属性的用户输入的值通过TintTypedArray读取进来,然后进行一些界面显示方面的设置。

初始化监听器,需要用到接口的回调。具体步骤是公开的声明接口,接口里面有onClick方法;声明该接口的实现,作为Toolbar的私有成员变量;公开setListener方法,把传进来的Listener实现类赋值给这个成员变量;在必须的时候调用成员变量的onClick方法(如在左边的按钮的点击事件中调用)。

公开一些函数,比如设置标题,设置返回键的图标等等,这里的toolbar较简洁,可以把图标设置成统一的回退键,只提供是否显示左侧按钮的函数。

1)设置布局


7753368-9fa547b001e830f4.png
设置布局

注意:在自定义View中获取上下文,一般使用getContext()方法。

2)读取用户输入的自定义属性


7753368-8a1e27a98a2cdb8d.png
读取用户输入的自定义属性

3)编写函数,设置title,是否显示左侧按钮


7753368-07cd77e029dd1e23.png
设置公开函数

4)将获取的用户输入的自定义属性设置到标题和左侧按钮上


7753368-a24f051130bcfc98.png
将自定义属性设置给控件

5)设置左侧按钮的监听事件。


7753368-22e6ed5f83871411.png
设置监听

4.使用ToolBar,在必须的地方如同一般的控件去使用就可以了,注意加上自定义属性的命名空间,一般为auto就可以了。


7753368-23b657b360f6f86a.png
使用自定义toolbar

5.代码中使用

  toolbar = findViewById(R.id.toolbar);  

toolbar.setOnLeftButtonClickListener(new CNToolbar.OnLeftButtonClickListener() {    

@Override    

public void onClick() {        

toolbar.setShowSearchView();     } });

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值