Android標題欄(TitleBar)絕佳解決方案

這可能是性能最優(yōu)、使用最簡單,支持自定義的標題欄

Github傳送地址,歡迎Star,Pull及issue

已投入公司項目多時,沒有任何毛病,點擊此處下載Demo

想了解實現(xiàn)原理的可以參考文章:純手工打造一個通用的標題欄TitleBar

集成步驟

dependencies {
    implementation 'com.hjq:titlebar:5.0'
}

屬性大全(劃重點,要考)

<declare-styleable name="TitleBar" >
    <!-- 整體樣式 -->
    <attr name="barStyle">
        <enum name="light" value="0x10" />
        <enum name="night" value="0x20" />
        <enum name="transparent" value="0x30" />
    </attr>
    <!-- 中間 -->
    <attr name="title" format="string" />
    <attr name="titleColor" format="color" />
    <attr name="titleSize" format="dimension" />
    <!-- 左邊 -->
    <attr name="leftTitle" format="string"/>
    <attr name="leftIcon" format="reference" /><!-- leftIcon 優(yōu)先于 backButton -->
    <attr name="backButton" format="boolean" /><!-- 返回按鈕(默認開) -->
    <attr name="leftColor" format="color" />
    <attr name="leftSize" format="dimension" />
    <attr name="leftBackground" format="reference|color" />
    <!-- 右邊 -->
    <attr name="rightTitle" format="string" />
    <attr name="rightIcon" format="reference" />
    <attr name="rightColor" format="color" />
    <attr name="rightSize" format="dimension" />
    <attr name="rightBackground" format="reference|color" />
    <!-- 分割線 -->
    <attr name="lineVisible" format="boolean" />
    <attr name="lineColor" format="reference|color" />
    <attr name="lineSize" format="dimension" />
</declare-styleable>

XML示例

點我查看完整的Demo示例

<com.hjq.bar.TitleBar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:title="默認的標題欄" />

設(shè)置監(jiān)聽事件

mTitleBar.setOnTitleBarListener(new OnTitleBarListener() {

    @Override
    public void onLeftClick(View v) {
        ToastUtils.show("左項View被點擊");
    }

    @Override
    public void onTitleClick(View v) {
        ToastUtils.show("中間View被點擊");
    }

    @Override
    public void onRightClick(View v) {
        ToastUtils.show("右項View被點擊");
    }
});

統(tǒng)一TitleBar樣式

如果對TitleBar的默認樣式不滿意,可以在Application初始化樣式,具體可參考TitleBarLightStyle的實現(xiàn)

public class XXApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        TitleBar.initStyle(new ITitleBarStyle());
    }
}

混淆規(guī)則

-keep class com.hjq.bar.** {*;}

框架亮點

  • 性能最佳:不使用LayoutInflater,而使用代碼創(chuàng)建View的形式

  • 體驗最優(yōu):TitleBar默認樣式效果已經(jīng)非常好,可下載Demo測試

  • 支持操控子控件:可以在代碼中獲取TitleBar的子控件進行調(diào)用相關(guān)的API

  • 支持自定義布局:可將TitleBar當(dāng)做FrameLayout使用,直接在XML中自定義布局

  • 兼容沉浸式狀態(tài)欄:兼容Github的沉浸式狀態(tài)欄框架,達到完全沉浸的效果

  • 框架兼容性良好:本框架不依賴任何第三方庫,支持兼容所有的安卓版本

  • 支持全局配置樣式:可以在Application中初始化TitleBar樣式,達到一勞永逸的效果

Android 技術(shù)討論 Q 群:10047167

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,058評論 25 709
  • 【0314能量按鈕】6345-lemon 第21次分享 這10個秘密,目前能做到的只是好好做人、好好進步、好好度日...
    lemon_c450閱讀 191評論 0 0
  • ——紀念一代軍神劉伯承元帥 一束亮光 作 拔劍渝川,舉義南昌,飲馬太行。逐鹿中原取淮海,過長江、掃西南...
    一束亮光閱讀 958評論 1 1
  • 酒泉城里修了所新學(xué)校,北苑學(xué)校。有一回從旁邊路過,新嶄嶄的,喜歡。要是將來樹長起來了,會有許多好看。毛德軍校長請我...
    行吟斯基閱讀 1,228評論 10 9
  • 余生請善待自己 尊重自己的每個決定 尊重自己內(nèi)心的想法 尊重自己的情緒 愛護自己的身體 允許自己生氣 給自己發(fā)泄的...
    大愛無痕閱讀 356評論 2 7

友情鏈接更多精彩內(nèi)容