# TitleBar **Repository Path**: summersrest/TitleBar ## Basic Information - **Project Name**: TitleBar - **Description**: 自定义标题栏 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-29 - **Last Updated**: 2022-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 自定义标题栏 **_定义项_** - 1、自定义返回按钮的图片及大小。 - 2、自定义返回按钮文字提示。 - 3、自定义标题的文字大小及颜色。 - 4、自定义右侧按钮的内部小图片,图片大小。文字,文字颜色,文字大小。按钮大小,按钮背景,按钮右边距。 - 5、自定义输入框的背景,大小,文字大小,文字颜色,左侧标记图片,图片的大小。 - 6、Application中全局设置属性,避免重复代码。 ## **1、导入** 1.引入jitpack ```java allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ``` 2.添加 ```java implementation 'com.github.summersrest:TitleBar:v1.0.9' ``` ## **2、使用** ### 1、xml中使用 ```xml ``` ### Attributes |name|format|description| |:---:|:---:|:---:| | tb_background_color | reference |titleBar背景色 | tb_background_drawable | reference |titleBar背景图(覆盖背景色) | tb_background_alpha | integer |titleBar背景透明度(0~255) | tb_title_bar_size | dimension |标题栏高度(不包括分割线高度,与分割线高度分别计算) | tb_back_icon | reference |回退按钮图片 | tb_back_icon_width | dimension |回退按钮图片宽度 | tb_back_icon_height | dimension |回退按钮图片高度 | tb_back_text | string |回退按钮文字 | tb_title | string |标题文字 | tb_title_color | color |标题文字颜色 | tb_title_text_size | dimension |标题文字字体大小 | tb_action_visible | boolean |右侧按钮是否显示(默认不显示,设置了按钮图片或者文字后默认为显示) | tb_action_text | string |右侧按钮文字 | tb_action_text_color | color |右侧按钮文字颜色 | tb_action_text_size | dimension |右侧按钮文字大小 | tb_action_width | dimension |右侧按钮宽度 | tb_action_height | dimension |右侧按钮高度 | tb_action_marginEnd | dimension |右侧按钮距离右边侧距离 | tb_action_background | reference |右侧按钮背景 | tb_action_icon | reference |右侧按钮内部显示图片 | tb_action_icon_width | dimension |右侧按钮图片宽度 | tb_action_icon_height | dimension |右侧按钮图片高度 | tb_divider_color | color |底部分割线颜色 | tb_divider_drawable | reference |底部分割线背景图(覆盖背景色) | tb_divider_size | dimension |底部分割线高度 | tb_divider_visible | visible/gone |底部分割线是否显示 | tb_divider_alpha | integer |底部分割线透明度(0~255) | tb_show_input_box | boolean |是否显示输入框(输入框显示则不显示标题) | tb_input_background | reference |输入框背景 | tb_input_width | dimension |输入框宽度 | tb_input_height | dimension |输入框高度 | tb_input_text_color | color |输入框文字颜色 | tb_input_text_size | dimension |输入框文字大小 | tb_input_text | string |输入框文字 | tb_input_hint | string |输入框提示文字 | tb_input_draw | reference |输入框左侧小图片 | tb_input_draw_width | dimension |输入框左侧小图片宽度 | tb_input_draw_height | dimension |输入框左侧小图片高度 | tb_can_finish_activity | boolean |点击返回按钮是否关闭当前activity ### 2、代码中设置样式属性 ```java titleBar //返回按钮图片 .setBackIcon(ContextCompat.getDrawable(this, R.mipmap.back_white)) .setBackIconResource(R.mipmap.back_white) //返回文字 .setBackText("返回") //标题栏背景颜色 .setTitleBarBackgroundColor(ContextCompat.getColor(this, R.color.red)) //标题栏背景图(会覆盖背景色) .setTitleBarBackground(ContextCompat.getDrawable(this, R.drawable.title_background)) .setTitleBarBackgroundResource(R.drawable.title_background) //标题文字 .setTitle("标题") //标题字体颜色 .setTitleColor(getColor(R.color.white)) //右侧按钮文字 .setActionText("保存") //右侧按钮字体颜色 .setActionTextColor(R.color.black) //右侧按钮图片 .setActionIcon(ContextCompat.getDrawable(this, R.mipmap.glass_gray)) .setActionIconResource(R.mipmap.glass_gray) //右侧按钮是否显示 .setActionVisible(false) //底部分割线颜色 .setDividerColor(ContextCompat.getColor(this, R.color.red)) //底部分割线背景图(会覆盖背景颜色) .setDivider(ContextCompat.getDrawable(this, R.drawable.line)) .setDividerResource(R.drawable.line) //标题栏透明的 .setBackgroundAlpha(255) //分割线透明度 .setDividerAlpha(255) //分割线与标题栏透明度 .setBackgroundAndDividerAlpha(255) //底部分割线是否显示 .setDividerVisible(TitleBar.VISIBLE) //底部分割线高度 .setDividerSize(MainActivity.this, 2f) //点击返回按钮是否关闭activity .setCanFinishActivity(true) //输入框提示文字 .setInputHint("请输入车牌号") //返回按钮点击事件 .setOnBackClickListener(new OnBackClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "返回按钮点击事件", Toast.LENGTH_SHORT).show(); } }) //右侧图片点击事件 .setOnActionClickListener(new OnActionClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "右侧按钮点击事件", Toast.LENGTH_SHORT).show(); } }); //设置输入框文字 titleBar.setInputText("输入框文字"); //设置输入框提示文字 titleBar.setInputHint("请输入车牌号"); //获取输入框控件 EditText editText = titleBar.getEditText(); //获取输入框中的文字 String content = titleBar.getInputText(); //清空输入框 titleBar.clearInput(); ``` ### 3、设置全局默认属性 可以在`Application`中统一设置样式属性 ```java TitleBar.getDefaultBuilder() //返回按钮图片 .setBackIcon(R.mipmap.back_white) //返回按钮尺寸 .setBackIconWidth(30) .setBackIconHeight(20) //返回文字 .setBackText("返回") //标题栏背景颜色 .setTitleBarBackgroundColor(ContextCompat.getColor(this, R.color.red)) //标题栏背景图(会覆盖背景色) .setTitleBarBackground(ContextCompat.getDrawable(this, R.drawable.title_background)) //标题字体颜色 .setTitleColor(getColor(R.color.white)) //右侧按钮字体颜色 .setActionTextColor(R.color.black) //底部分割线颜色 .setDividerColor(ContextCompat.getColor(this, R.color.red)) //底部分割线背景图(会覆盖背景颜色) .setDivider(ContextCompat.getDrawable(this, R.drawable.line)) //设置标题栏高度(标题栏高度不包含分割线的高度) .setTitleBarHeight(60) //设置分割线高度 .setDividerSize(2) //底部分割线是否显示 .setDividerVisible(TitleBar.VISIBLE); ``` ## **3、备注** > 1、标题栏背景图与底部分割线背景图会覆盖掉背景色,也就是如果设置了背景图,再设置背景色无效。 > 2、样式设置优先级:代码>xml>全局。代码中未设置样式属性,以xml中设置的样式为准,代码与xml中都未设置,以Applicaion中设置的全局默认样式属性为准。 > 3、标题栏的整体高度为 标题栏高度+分割线高度,即整体高度为 **tb_title_bar_size + tb_divider_size** > 4、标题栏tb_title_bar_size的默认高度为60dp,假如设置的整体高度小于等于60dp,并且未指定tb_title_bar_size的高度,分割线会被覆盖掉无法显示,解决办法是指定TitleBar的整体高度-tb_title_bar_size高度=分割线的高度。或者将TitleBar的高度设置为wrap_content。 > 5、右侧按钮默认为不显示,当设置过按钮图片或者文字后,程序会自动将其设置为显示状态,无需手动更改。 ```xml ``` 或者 ```xml ```