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

TitleLayout

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

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

效果圖

歡迎關注:

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代碼實現標題欄;
    • 支持沉浸式狀態欄,支持左側返回按鈕(不須要手動實現頁面返回),左側支持圖片+文字、圖片、文字;右側支持圖片、文字等。
相關文章
相關標籤/搜索