最近做项目中遇到ToolBar因为不同的界面toobar不同为了描述统一的风格。相信大家也非常清楚,大多数ToolBar包括以下几个方面
再看一下淘宝以及其他appToolBar样式界面
下面看下我自定义的CustomeToolBar继承原生ToolBar
package com.ldm.imitatewx; import android.content.Context; import android.graphics.drawable.Drawable; import android.support.v4.content.ContextCompat; import android.util.AttributeSet; import android.view.View; import android.widget.TextView; import android.widget.Toolbar; /** * Created by John on 2017/2/16. */ public class CustomeToolBar extends Toolbar { private TextView mTvMainTitleLeft; private TextView mTvMainTitle; private TextView mTvMainRight; public CustomeToolBar(Context context) { super(context); } public CustomeToolBar(Context context, AttributeSet attrs) { super(context, attrs); } public CustomeToolBar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onFinishInflate() { super.onFinishInflate(); mTvMainTitleLeft= (TextView) findViewById(R.id.lt_main_title_left); mTvMainTitle= (TextView) findViewById(R.id.lt_main_title); mTvMainRight= (TextView) findViewById(R.id.lt_main_title_right); } //设置主title内容 public void setMainTitle( String text ) { this.setTitle(" "); mTvMainTitle.setVisibility(View.VISIBLE); mTvMainTitle.setText(text); } //设置主title的内容文字的颜色 public void setTitleColor(int color ) { mTvMainTitle.setTextColor(color); } //设置左边title内容 public void setMainTitleLeft(String text ) { mTvMainTitleLeft.setVisibility(View.VISIBLE); mTvMainTitleLeft.setText(text); } //设置左边的title颜色 public void setMainTitleLeftColor(int color ) { mTvMainTitleLeft.setTextColor(color); } //设置左边icon public void setMainTitleLeftDrawable(int res ) { Drawable left= ContextCompat.getDrawable(getContext(),res); left.setBounds(0,0,left.getMinimumWidth(),left.getMinimumHeight()); mTvMainTitleLeft.setCompoundDrawables(left,null,null,null); } //设置右边的title public void setTvMainRightText(String text ) { mTvMainRight.setVisibility(View.VISIBLE); mTvMainRight.setText(text); } //设置右边标题的颜色 public void setMainTitleRightColor(int color ) { mTvMainRight.setTextColor(color); } //设置右边icon public void setMainTitleRightDrawable(int res ) { Drawable right= ContextCompat.getDrawable(getContext(),res); right.setBounds(0,0,right.getMinimumWidth(),right.getMinimumHeight()); mTvMainTitleLeft.setCompoundDrawables(right,null,null,null); } //设置toolbar颜色 public void setToolBarBackground(int res ) { this.setBackgroundResource(res); } //设置ToolBar左边的图标 public void setToolbarLeftBackImageRes(int res ) { this.setNavigationIcon(res); } //设置toolbar左边文字 public void setToolbarLeftText(String text ){ this.setNavigationContentDescription(text); } //设置toolbar标题 public void setToolbarTitle(String text ) { this.setTitle(text); } //设置toolbar颜色 public void setToolbarTitleColor(int color ) { this.setTitleTextColor(color); } //设置ToolBar子标题 public void setToolbarSubTitleText(String text ) { this.setSubtitle(text); } //设置toolbar子标题的颜色 public void setToolbarSubTitleTextColor(int color ) { this.setSubtitleTextColor(color); } }
然后布局引用activity_custome_toolbar
因为其实toolbar说白也是view也可以说是一个布局
所以我们只要根据自己需求往里面丢东西就ok,这里可能不全面,希望大家一起完善谢谢!
<&#63;xml version="1.0" encoding="utf-8"&#63;>
到这里基本结束了!大家可以继续完善!谢谢!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。