TitleLayout——一个Android轻松实现通用、标准、支持沉浸式状态栏的标题栏库

时间:2024-01-14 18:16:38

TitleLayout

多功能、通用的、可在布局或者使用Java代码实现标题栏;支持沉浸式状态栏,支持左侧返回按钮(不需要手动实现页面返回),左侧支持图片+文字、图片、文字;右侧支持图片、文字等。

堆码不易,star支持,万分感谢

效果图

TitleLayout——一个Android轻松实现通用、标准、支持沉浸式状态栏的标题栏库

欢迎关注:

Android开发常备工具整理中

Gradle依赖:

   compile 'com.github.SiberiaDante:TitleLayout:v1.1.0'

在布局中使用:

<com.siberiadante.titlelayoutlib.TitleBarLayout
android:id="@+id/title_layout_one"
android:layout_width="match_parent"
android:layout_height="wrap_content"
dante:d_is_back_view="true"
dante:d_is_immersive_state_bar="true"
dante:d_left_image="@mipmap/back_gray"
dante:d_left_image_padding_start="10dp"
dante:d_left_image_width="30dp"
dante:d_left_text="测试"
dante:d_left_text_style="normal"
dante:d_left_text_color="@color/black"
dante:d_left_text_padding_start="10dp"
dante:d_left_text_size="14sp"
dante:d_line_height="1px"
dante:d_right_text="举报"
dante:d_right_text_size="14sp"
dante:d_right_text_style="normal"
dante:d_right_text_color="@color/white"
dante:d_title_size="18sp"
dante:d_title_style="mormal"
dante:d_title_text="这里是标题"
dante:d_title_color="@color/black"
dante:d_subtitle_size="11sp"
dante:d_subtitle_style="mormal"
dante:d_subtitle_text="这里是副标题"
dante:d_subtitle_color="@color/gray"
dante:d_title_layout_background="@color/red"
dante:d_title_layout_height="45dp"/>

使用Java代码:

  TitleBarLayout titleBarLayout = (TitleBarLayout) findViewById(R.id.title_layout);
titleBarLayout.setTitleClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LogUtil.d("title 被点击了");
}
});
//设置Titlesize
titleBarLayout.setTitleSize(30);
//一键设置标题样式
titleBarLayout.setTitleStyle("我是标题", 18, ContextCompat.getColor(this, R.color.action_sheet_blue));
titleBarLayout.setRightImageClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LogUtil.d("右边图片被点击了");
}
});

重点说明:

  • 若左侧文字或者按钮为返回键,只需要布局中使用如下代码即可:
    dante:d_is_back_view="true"

    或者Java代码中

    titleLayout.setIsLeftBackView(true)

    无须在设置onClickListener,this.finish等;如有特殊需要,可设置属性为false,实现方法:

    setLeftClickListener(OnClickListener listener)
  • 若项目中使用了沉浸式状态栏,则需要在布局中
    dante:d_is_immersive_state_bar="true"
  • 设置页面为沉浸式状态栏方法:
     ScreenUtil.setStatusTranslucent(this);

其他属性说明

xml中的属性:

xml属性 属性说明
d_left_image 左边图片资源
d_left_image_width 左边图片宽(高为匹配父布局)
d_left_image_padding_start 左边图片左边距(默认10dp)
d_left_text 左边文字资源
d_left_text_size 左边文字大小(默认16SP)
d_left_text_color 左边文字颜色(默认黑色)
d_left_text_style 设置文字style(normal|bold|italic)
d_left_text_padding_start 左边文字左边距(默认10dp)
d_title_text 中间标题文字资源
d_title_size 中间标题文字大小(默认18SP)
d_title_color 中间标题文字颜色(默认黑色)
d_title_style 设置文字style(normal|bold|italic)
d_subtitle_text 中间副标题文字资源
d_subtitle_size 中间副标题文字大小(默认12SP)
d_subtitle_color 中间副标题文字颜色(默认黑色)
d_subtitle_style 设置文字style(normal|bold|italic)
d_right_text 右边文字资源
d_right_text_color 右边文字颜色
d_right_text_size 右边文字大小(默认16sp)
d_right_text_style 设置文字style(normal|bold|italic)
d_right_text_padding_end 右边文字距离右边距
d_right_image 右边图片资源
d_right_image_width 右边图片宽度,高度为匹配父布局
d_right_image_padding_end 右边图片距离右边距
d_line_height 标题栏底部横线高度(默认1px,建议单位使用px)
d_line_background 标题栏底部横线背景颜色(默认黑色)
d_title_layout_height 标题栏整体高度(默认45dp)
d_title_layout_background 标题栏整体背景颜色
d_is_back_view 左侧文字和图片是否为返回键,若是返回键,则自带返回前一页面功能
d_is_immersive_state_bar 是否是沉浸式状态栏,默认false,(为true时标题栏高度包含状态栏高度)

Java 代码中

Java代码方法 Java代码方法说明
setTitle(CharSequence title) 设置标题资源
setTitleSize(int titleSize) 设置标题字体大小
setTitleColor(int titleColor) 设置标题字体颜色
setTitleStyle(String title, int titleSize, int titleColor) 设置标题资源、文字大小、文字颜色
setSubTitle(CharSequence title) 设置副标题资源
setSubTitleSize(int titleSize) 设置副标题字体大小
setSubTitleColor(int titleColor) 设置副标题字体颜色
setSubTitleStyle(String title, int titleSize, int titleColor) 设置副标题资源、文字大小、文字颜色
setLeftText(String leftText) 设置左侧文字
setLeftTextSize(int leftTextSize) 设置左侧文字大小
setLeftTextColor(int leftTextColor) 设置左侧文字颜色
setLeftStyle(String leftText, int leftTextSize, int leftTextColor) 设置左侧文字、文字大小、文字颜色
setRightText(String rightText) 设置右侧文字
setRightTextSize(int rightTextSize) 设置右侧文字大小
setRightTextColor(int rightTextColor) 设置右侧文字颜色
setTitleClickListener(OnClickListener listener) 标题点击监听
setLeftClickListener(OnClickListener listener) 左侧文字和按钮点击监听
setRightTextClickListener(OnClickListener listener) 右侧文字点击监听
setRightImageClickListener(OnClickListener listener) 右侧按钮点击监听
setIsLeftBackView(boolean isLeftBackView) 设置左侧文字和按钮是否为返回按钮
setIsHaveLine(boolean haveLine) 设置标题栏底部是否有分割线
setLeftBackViewVisible 设置左侧图标显示隐藏
setLeftTextViewVisible 设置左侧文字显示隐藏
setRightTextViewVisible 设置右侧文字显示隐藏
setRightImageViewVisible 设置右侧图标显示隐藏
setTitleVisible 设置标题显示隐藏
setSubTitleVisible 设置副标题显示隐藏

问题

  • 设置字体颜色失真,请使用:ContextCompat.getColor(this,R.color.red)

更新优化说明

  • v1.1.0:
    • 增加支持Java代码设置所有控件显示隐藏
  • v1.0.9:
    • 增加支持动态设置左侧和右侧图标功能
    • 增加未初始化时UnsupportedOperationException异常提示
  • v1.0.4
    • 修复bug
    • 支持设置文字style(normal|bold|italic)
  • v1.0.2
    • 增加支持副标题功能
    • 优化标题过长显示问题
  • v1.0.1
    • 多功能、通用的、可在布局或者使用Java代码实现标题栏;
    • 支持沉浸式状态栏;
    • 支持左侧返回按钮不需要手动实现页面返回;
    • 支持左侧按钮,中间标题,右边按钮点击
    • 左侧支持图片+文字、单独图片、单独文字;右侧支持单独图片、单独文字等。
    • 多功能、通用的、可在布局或者使用Java代码实现标题栏;
    • 支持沉浸式状态栏,支持左侧返回按钮(不需要手动实现页面返回),左侧支持图片+文字、图片、文字;右侧支持图片、文字等。