最近做项目中遇到ToolBar因为不同的界面toobar不同为了描述统一的风格。相信大家也非常清楚,大多数ToolBar包括以下几个方面
左标题 左边题颜色 左标题图标等
标题 标题颜色
右标题 右标题颜色 右标题图标
ToolBar标题 ToolBar颜色 ToolBar图标
ToolBar子标题 ToolBar子标题 ToolBar子标题颜色
再看一下淘宝以及其他appToolBar样式界面
下面看下我自定义的CustomeToolBar继承原生ToolBar
代码如下 | 复制代码 |
packagecom.ldm.imitatewx;
importandroid.content.Context; importandroid.graphics.drawable.Drawable; importandroid.support.v4.content.ContextCompat; importandroid.util.AttributeSet; importandroid.view.View; importandroid.widget.TextView; importandroid.widget.Toolbar;
/** * Created by John on 2017/2/16. */
publicclassCustomeToolBarextendsToolbar { privateTextView mTvMainTitleLeft; privateTextView mTvMainTitle; privateTextView mTvMainRight; publicCustomeToolBar(Context context) { super(context); }
publicCustomeToolBar(Context context, AttributeSet attrs) { super(context, attrs); }
publicCustomeToolBar(Context context, AttributeSet attrs,intdefStyleAttr) { super(context, attrs, defStyleAttr); }
@Override protectedvoidonFinishInflate() { 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内容 publicvoidsetMainTitle( String text ) { this.setTitle(" "); mTvMainTitle.setVisibility(View.VISIBLE); mTvMainTitle.setText(text); } //设置主title的内容文字的颜色 publicvoidsetTitleColor(intcolor ) { mTvMainTitle.setTextColor(color); } //设置左边title内容 publicvoidsetMainTitleLeft(String text ) { mTvMainTitleLeft.setVisibility(View.VISIBLE); mTvMainTitleLeft.setText(text); } //设置左边的title颜色 publicvoidsetMainTitleLeftColor(intcolor ) { mTvMainTitleLeft.setTextColor(color); } //设置左边icon publicvoidsetMainTitleLeftDrawable(intres ) { Drawable left= ContextCompat.getDrawable(getContext(),res); left.setBounds(0,0,left.getMinimumWidth(),left.getMinimumHeight()); mTvMainTitleLeft.setCompoundDrawables(left,null,null,null); } //设置右边的title publicvoidsetTvMainRightText(String text ) { mTvMainRight.setVisibility(View.VISIBLE); mTvMainRight.setText(text); } //设置右边标题的颜色 publicvoidsetMainTitleRightColor(intcolor ) { mTvMainRight.setTextColor(color); } //设置右边icon publicvoidsetMainTitleRightDrawable(intres ) { Drawable right= ContextCompat.getDrawable(getContext(),res); right.setBounds(0,0,right.getMinimumWidth(),right.getMinimumHeight()); mTvMainTitleLeft.setCompoundDrawables(right,null,null,null); } //设置toolbar颜色 publicvoidsetToolBarBackground(intres ) { this.setBackgroundResource(res); } //设置ToolBar左边的图标 publicvoidsetToolbarLeftBackImageRes(intres ) { this.setNavigationIcon(res); } //设置toolbar左边文字 publicvoidsetToolbarLeftText(String text ){ this.setNavigationContentDescription(text); } //设置toolbar标题 publicvoidsetToolbarTitle(String text ) { this.setTitle(text); } //设置toolbar颜色 publicvoidsetToolbarTitleColor(intcolor ) { this.setTitleTextColor(color); } //设置ToolBar子标题 publicvoidsetToolbarSubTitleText(String text ) { this.setSubtitle(text); } //设置toolbar子标题的颜色 publicvoidsetToolbarSubTitleTextColor(intcolor ) { this.setSubtitleTextColor(color); }
} |
然后布局引用activity_custome_toolbar
因为其实toolbar说白也是view也可以说是一个布局
所以我们只要根据自己需求往里面丢东西就ok,这里可能不全面,希望大家一起完善谢谢!
代码如下 | 复制代码 |
xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="?attr/label_textSize" android:background="@android:color/holo_green_light" android:fitsSystemWindows="true" app:contentInsetLeft="0dp" app:contentInsetStart="0dp" app:popupTheme="@style/MyPopStyle" > android:id="@+id/lt_main_title_left" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:text="返回" android:gravity="center" android:drawableLeft="@drawable/ic_back_u" android:textColor="@android:color/white" android:singleLine="true" android:textSize="16sp" android:visibility="visible"/> android:id="@+id/lt_main_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:singleLine="true" android:textColor="@android:color/white" android:text="标题" android:textSize="20sp" android:visibility="visible" /> android:id="@+id/lt_main_title_right" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right" android:layout_marginRight="10dp" android:text="返回" android:gravity="center" android:drawableRight="@drawable/ic_add" android:textColor="@android:color/white" android:singleLine="true" android:textSize="16sp" android:visibility="visible"/> |