TitleLayout

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

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

效果图

欢迎关注:

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代码实现标题栏;
    • 支持沉浸式状态栏,支持左侧返回按钮(不需要手动实现页面返回),左侧支持图片+文字、图片、文字;右侧支持图片、文字等。

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

  1. TitleLayout——一个Android轻松实现标题栏的库

    TitleLayout 多功能.通用的.可在布局或者使用Java代码实现标题栏: 支持沉浸式状态栏: 支持左侧返回按钮不需要手动实现页面返回: 支持左侧按钮,中间标题,右边按钮点击 左侧支持图片+文字 ...

  2. Android 5.0以上Material Design 沉浸式状态栏

    偶然在知乎上看到这个问题,Android 5.0 如何实现将布局的内容延伸到状态栏,之前也见过多个应用的这个功能,但是知乎上的答案却没有一个真正实现此功能的一类是把标题栏设置App主题颜色,一类是提取 ...

  3. Android沉浸式状态栏的简单实现

    随着卡片式设计在Android系统的上越来越流行,比如现在早已经烂大街的沉浸式状态栏,几乎所有的主流的APP都支持沉浸式状态栏,如QQ.UC浏览器等等.所以觉得有必要学习一下,找了点资料,总结了一下, ...

  4. 81.Android之沉浸式状态栏攻略

    转载:http://blog.csdn.net/lmj623565791/article/details/48649563/ 一.概述 近期注意到QQ新版使用了沉浸式状态栏,ok,先声明一下:本篇博客 ...

  5. Android 沉浸式状态栏攻略 让你的状态栏变色吧

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/48649563: 本文出自:[张鸿洋的博客] 一.概述 近期注意到QQ新版使用了 ...

  6. Android 沉浸式状态栏完美解决方案

    现在搜索Android 沉浸式状态栏,真的是一堆一堆,写的特别多,但是真正用的舒服的真没有,在这里自己整理一下开发记录 注意,在使用这个步骤过程之前,请把之前设置的代码注释一下 把布局带有androi ...

  7. android -------- 沉浸式状态栏和沉浸式导航栏(ImmersionBar)

    android 4.4以上沉浸式状态栏和沉浸式导航栏管理,包括状态栏字体颜色,适用于Activity.Fragment.DialogFragment.Dialog,并且适配刘海屏,适配软键盘弹出等问题 ...

  8. Android沉浸式状态栏兼容4.4手机的实现

    一.概述 最近注意到QQ新版使用了沉浸式状态栏,ok.先声明一下:本篇博客效果下图: 关于这个状态栏变色究竟叫「Immersive Mode」/「Translucent Bars」有兴趣能够去 为什么 ...

  9. Android中沉浸式状态栏的应用

    在Android5.0版本后,谷歌公司为Android系统加入了很多新特性,刷新了Android用户的体验度.而其中的一个新特性就是沉浸式状态栏.那么问题来了,很多非移动端的小伙伴就要问了,什么是沉浸 ...

随机推荐

  1. 环境搭建-----IntelliJ idea之resin配置

    目前网上的相关资料太少了 自己只能摸索着尝试 最后在领导的帮忙下 成功实现了环境的集成 网上查到的一般都是修改resin的配置文件等等 其实完全没有必要 本人之前在intellij下部署resin遇到 ...

  2. Redis的配置和使用

    下载Redis:  https://github.com/dmajkic/redis/downloads 学习地址:http://bbs.paris8.org/viewthread.php?tid=6 ...

  3. Android 怎样开启与关闭adb 的认证机制(google adb secure) (adb RSA 指纹认证)

    前言         欢迎大家我分享和推荐好用的代码段~~声明         欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net           ...

  4. JS进阶之---this的指向

    this到底指向什么地方,决定于函数的调用方式. 1. 指向全局变量 --- 函数被单独调用的时候 function fn() { console.log( this.a ); } var a = 2 ...

  5. mybatis基础系列(二)——基础语法、别名、输入映射、输出映射

    增删改查 mapper根节点及其子节点 mybatis框架需要读取映射文件创建会话工厂,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.d ...

  6. MTALAB——神经网络mae()、mse()、sse()

    mae():平均绝对误差 mse:均方误差 sse:误差平方和

  7. Python Tornado搭建高并发Restful API接口服务

    Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快能实现高并发.得利于其 非阻塞的方式和对epoll的运用,Torn ...

  8. C# 语法四 修饰符

    1.sealed 不能派生 2.internal 仅仅在本项目中被访问 3.public 整个系统 4.private 本类访问 5.protected 本类.派生类访问 using System; ...

  9. MYSQL表情存储数据库报错

    1.windows安装5.5.5.9的服务器 2.打开window服务找到mysql的服务,右键属性查看路径 3.打开路径,修改mysql配置文件my.ini 4.修改[client]中的defaul ...

  10. TCP/IP协议---IP协议

    IP协议层 在传输层的下边,链路层的上边. IP层封装后称为数据报(传输层叫数据段,链路层叫数据帧.值得注意的是,不是所有的以太网数据帧都是IP数据报,至少以太网还要使用ARP协议.不是所有的IP数据 ...