Topbar

开发中经常会看到每个页面都会有个titlebar,每个页面的样式其实是大同小异的,最近学习了一下UI的模板开发,就将titlebar写了一个模板,整理一下模板的思路。

1.设计我们所需要的属性

2.自定义View

3.引用我们的View


一 、设计我们所需要的属性

在res-values-attr下创建我们所需要的属性:

如:


二、自定义我们的view

自定义view 继承RelativeLayout ,如果需要添加我们自己定义的属性,需要实现其多参数的构造方法

系统为我们提供了 TypeArray 用于获取我们自定义的属性,

如:


最后要记得  typearray.recycle() ;


自定义控件获取方法有两种

1.加载xml

2.动态生成

如 Button btn = new Button() ;

将自定义属性和控件关联

btn,setLeftTextColor(typearray.getInt()) ;

三、引用我们的view

引用view时包名+view

引用自定义属性 在eclipse中引入第三方view需指明路径 res/包名  在studio中则为res/aotu  系统为android开发,自定义的名字由自己定义即可,如:app

app:textColor= "#ddd"



自定义view中事件监听,由于是模板,我们可按照系统为我们提供监听的模板进行设计。

如:

 btn.setOnClickListener(new OnClickListener(){

})

对外只提供事件的动作,不关心具体要实现哪种操作,则用到了接口回调机制


topbar.setOnTopbarClickListener(new TopbarclickListener){

public void leftClick(){


}


public void rightClick(){


}



}


TopbarClickListener listener ;//变量映射调用者调用

定义一个接口


interface TopbarClickListener{

  public void  leftClick() ;

 public void rightClick() ;

}

//暴露一个方法给调用者

public void setOnTopbarListener(TopbarClickListener topbarclickListener){

this.listener = topbarclickListener ;

}


leftBtn.setOnClickListener(new OnClickListener(){

listener.leftClick() ;

});


rightBtn.setOnClickListener(){

listener.rightClick();

}


注:未整理完毕,待续!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值