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

TitleLayout

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

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

点击查看效果图

欢迎关注:

在布局中使用:

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

原文地址:https://www.cnblogs.com/shen-hua/p/8468699.html

时间: 2024-08-26 21:14:15

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

Android设置沉浸式状态栏时改变状态栏的颜色(只对MIUI V6可用)

Android支持在API 19及以上使用沉浸式状态,但在MIUI V6下如果扩展的颜色比较浅,会导致状态栏的文字无法看清. 在Android4.4设备上支持沉浸式状态栏,只需要添加values-v19/styles.xml 下添加 <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.NoActionBar"> <item name="android:window

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

转载:http://blog.csdn.net/lmj623565791/article/details/48649563/ 一.概述 近期注意到QQ新版使用了沉浸式状态栏,ok,先声明一下:本篇博客效果下图: 关于这个状态栏变色到底叫「Immersive Mode」/「Translucent Bars」有兴趣可以去 为什么在国内会有很多用户把 ?透明栏?(Translucent Bars)称作 ?沉浸式顶栏??上面了解了解,请勿指点我说的博文标题起得不对,thx. 恩,接下来正题. 首先只有大

教程分享:如何实现Android沉浸式状态栏——教你让你的状态栏变个色!

一.概述 近期注意到QQ新版使用了沉浸式状态栏,ok,先声明一下:本篇博客效果下图: 关于这个状态栏变色到底叫「Immersive Mode」/「Translucent Bars」有兴趣可以去了解下. 恩,接下来正题. 首先只有大于等于4.4版本支持这个半透明状态栏的效果,但是4.4和5.0的显示效果有一定的差异,所有本篇博文内容为: 如何实现半透明状态栏效果在大于4.4版本之上. 如何让4.4的效果与5.0的效果尽可能一致. 看了不少参考文章,都介绍到这个库,大家可以了解:SystemBarT

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

转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/48649563: 本文出自:[张鸿洋的博客] 一.概述 近期注意到QQ新版使用了沉浸式状态栏,ok,先声明一下:本篇博客效果下图: 关于这个状态栏变色到底叫「Immersive Mode」/「Translucent Bars」有兴趣可以去 为什么在国内会有很多用户把 ?透明栏?(Translucent Bars)称作 ?沉浸式顶栏??上面了解了解,请勿指点我说的博文标题起得不对

Qt 5.9 for Android 实现沉浸式状态栏

Android 手机应用程序如果不全屏,系统默认的顶部状态栏的颜色(黑色)会破坏精心设计的 APP 的整体风格和美感,所以,对状态栏的处理,个人觉得还是很有必要的. 在 Qt 5.9 中,使用 QML声明式语言, 通过 Screen 对象来获取到设备的长宽,可以分别获取到整个设备的长宽和去掉手机顶部状态栏之后的长宽,可以说非常方便吧,但是,当你设置整个 Windows 对象或者ApplicationWindow 对象的长宽为设备的最大长宽的时候,会发现并不能生效,状态栏屹立不倒,忘了说了,这个沉

【Android实战】Android沉浸式状态栏实现(下)

之前的Android沉浸式状态栏实现并没有考虑软键盘的影响,接下来的内容将会针对这个问题给出解决方式,先看一下效果图 这个是一个留言板的效果图: 即弹出软键盘的时候并不会导致整个布局上移. 详细怎样实现?依照下面步骤进行设置: 1.布局文件里声明例如以下 <activity android:name="com.storm.durian.activity.LeaveMessageDetailsActivity" android:screenOrientation="por

android沉浸式状态栏、变色状态栏、透明状态栏、修改状态栏颜色及透明

首先我要区分清楚沉浸式状态栏与变色状态栏. 沉浸式状态栏指的是,状态栏隐藏,在手指做了相关操作后,状态栏显示出来,例如视频播放器,在播放视频时是隐藏状态栏的,但是点击屏幕的时候,状态栏会显示出来,再例如文本阅读器,在阅读的时候是全屏的,然后从屏幕上方下滑或者下方上划,虚拟键和状态栏出现了,但却是直接覆盖在程序文字上的,这是所谓的沉浸式状态栏. 那么大家平时所说的状态栏与导航栏颜色相同,或者透明,指的是变色状态栏,或者透明状态栏. 对于这两个概念的理解,大家可以参考http://www.andro

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

android 4.4以上沉浸式状态栏和沉浸式导航栏管理,包括状态栏字体颜色,适用于Activity.Fragment.DialogFragment.Dialog,并且适配刘海屏,适配软键盘弹出等问题 ImmersionBar -- android 4.4以上沉浸式实现 直接看效果图,最下面有各个版本的效果图 android studio 引入依赖 implementation 'com.gyf.immersionbar:immersionbar:2.3.3' eclipse immersion

android沉浸式状态栏实现

传统的手机状态栏是呈现出黑色条状的,有的和手机主界面有很明显的区别.这样就在一定程度上牺牲了视觉宽度,界面面积变小. 沉浸模式的状态栏和主界面完全融为了一体,在设计上有不同的视觉感受. 我们先上两张图,很容易看出区别:        Android在4.4的时候增加了透明状态栏与导航栏的功能,依托于这个新特性,我们可以开始跟随潮流,实现Android的沉浸式状态栏 其实上图展示的这个关于界面的代码非常简单 /** * 关于界面 * * @author SuS * @time 2015.07.29