TitleLayout——一個Android輕松實現通用、標準、支持沈浸式狀態欄的標題欄庫
阿新 • • 發佈:2018-02-25
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輕松實現通用、標準、支持沈浸式狀態欄的標題欄庫