標籤:state end isl bool 監聽 mpi 代碼實現 boolean div
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:
- v1.0.9:
- 增加支援動態設定左側和右側表徵圖功能
- 增加未初始化時UnsupportedOperationException異常提示
- v1.0.4
- 修複bug
- 支援設定文字style(normal|bold|italic)
- v1.0.2
- v1.0.1
- 多功能、通用的、可在布局或者使用Java代碼實現標題列;
- 支援沈浸式狀態列;
- 支援左側返回按鈕不需要手動實現頁面返回;
- 支援左側按鈕,中間標題,右邊按鈕點擊
- 左側支援圖片+文字、單獨圖片、單獨文字;右側支援單獨圖片、單獨文字等。
- 多功能、通用的、可在布局或者使用Java代碼實現標題列;
- 支援沈浸式狀態列,支援左側返回按鈕(不需要手動實現頁面返回),左側支援圖片+文字、圖片、文字;右側支援圖片、文字等。
TitleLayout——一個Android輕鬆實現通用、標準、支援沈浸式狀態列的標題列庫