1. 程式人生 > >TitleLayout——一個Android輕松實現通用、標準、支持沈浸式狀態欄的標題欄庫

TitleLayout——一個Android輕松實現通用、標準、支持沈浸式狀態欄的標題欄庫

sub blog uri IT 特殊 java代碼 ber ext tar

TitleLayout

多功能、通用的、可在布局或者使用Java代碼實現標題欄;支持沈浸式狀態欄,支持左側返回按鈕(不需要手動實現頁面返回),左側支持圖片+文字、圖片、文字;右側支持圖片、文字等。

堆碼不易,star支持,萬分感謝

點擊查看效果圖

歡迎關註:

  • [Github 地址:https://github.com/SibreiaDante]
  • [博客園:http://www.cnblogs.com/shen-hua/]

    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輕松實現通用、標準、支持沈浸式狀態欄的標題欄庫