TitleBar
???? https://github.com/loperSeven/TitleBar 殖演,滿足各種日常使用的標(biāo)題欄,不要讓你的時(shí)間浪費(fèi)在寫標(biāo)題欄上情臭。
序言
android support library 推出的ToolBar拓展性很高省撑,也是官方代替ActionBar的一個(gè)控件,ToolBar的優(yōu)點(diǎn)在于可以配合其他控件寫出爆炸性的UI交互俯在, 但是在日常開發(fā)中竟秫,我們用不到這些東西,也正是因?yàn)檫@樣朝巫,才自己寫了個(gè)TitleBar鸿摇。
截圖
ps:MIUI系統(tǒng)默認(rèn)的跳轉(zhuǎn)和代碼設(shè)置的跳轉(zhuǎn)動(dòng)畫,剛好一樣所以看不出來效果劈猿。
特性
- 極簡(jiǎn)使用方法
- 全局配置控件屬性參數(shù) (代碼內(nèi)>xml內(nèi)>全局配置)
- 返回按鈕點(diǎn)擊事件默認(rèn)監(jiān)聽執(zhí)行返回操作(不用每個(gè)界面去寫finish拙吉,它幫你做到了)潮孽,自定義監(jiān)聽覆蓋默認(rèn)返回操作
- 標(biāo)題顯示模式人性化
- 支持水波紋點(diǎn)擊效果
使用
依賴
dependencies {
compile'com.github.loperSeven:TitleBar:1.0.1'
}
or
方法一.下載layout依賴包,以module方式導(dǎo)入項(xiàng)目
方法二.將layout中的TitleBar和res->values->attr中的TitleBar自定義屬性copy到相應(yīng)位置
全局配置
TitleBar.getConfig()
.setTitleTextSize(getApplicationContext(), 16)
.setTitleTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorTextBlackLight))
.setMenuTextSize(getApplicationContext(), 14)
.setMenuTextColor(ContextCompat.getColor(getApplicationContext(), R.color.colorTextBlackLight))
.setPadding(getApplicationContext(), 16)
.setCenterTitle(false)
.setUseRipple(false)
.setTitleEllipsize(TextUtils.TruncateAt.MARQUEE)
.setBackgroundColor(Color.WHITE)
.setBorderColor(ContextCompat.getColor(getApplicationContext(), R.color.colorBorder))
.setShowBorder(false)
.setBorderWidth(getApplicationContext(), 0.6f)
.setActivityBackAnim(R.anim.activity_backward_enter, R.anim.activity_backward_exit);
以上代碼為設(shè)置TitleBar的默認(rèn)屬性筷黔,可選擇性設(shè)置也可不設(shè)置往史,設(shè)置后則不用在xml或代碼中重復(fù)設(shè)置,再次調(diào)用設(shè)置可覆蓋之前設(shè)置佛舱,可在項(xiàng)目任一地方使用椎例,前提是在你的使用titleBar之前,建議放在啟動(dòng)頁(yè)或者Application中请祖。(當(dāng)其中某一項(xiàng)不滿足某個(gè)場(chǎng)景時(shí)可在xml中或者代碼中直接設(shè)置覆蓋订歪,不會(huì)影響項(xiàng)目中其他titleBar)
XML
<com.loper7.layout.TitleBar
android:id="@+id/main_titleBar"
android:layout_width="match_parent"
android:layout_height="50dp"
app:tBackgroundColor="@color/colorPrimary"
app:tMenuImage="@mipmap/ic_menu_white"
app:tTitleText="TITLEBAR"
app:tTitleTextColor="@color/colorTextWhite"
app:tTitleTextSize="16sp" />
代碼中
代碼中可像其他View一樣
TitleBar titleBar = new TitleBar(this);
...
addView(titleBar);
綁定LayoutParams,通過titleBar內(nèi)提供的屬性方法設(shè)置titleBar屬性肆捕,最后添加在父View中刷晋。
Github
最后
喜歡請(qǐng)點(diǎn)star????,意見慎陵、建議眼虱、bug、新的功能請(qǐng)?zhí)酙ssues席纽,會(huì)不定期查看并更新捏悬,謝謝閱讀。
-----------------------------------下面是所有公共方法和自定義屬性------------------------------------
API
Name | Param | remark |
---|---|---|
setBackImageDrawable | setBackImageDrawable(Drawable drawable) |
設(shè)置返回按鈕圖片 |
setBackImageResource | setBackImageResource(@DrawableRes int resId) |
設(shè)置返回按鈕圖片 |
setTitleText | setTitleText(String title) setTitleText(@StringRes int resId) |
設(shè)置標(biāo)題文字 |
setTitleTextColor | setTitleTextColor(@ColorInt int color) |
設(shè)置標(biāo)題文字顏色 |
setTitleTextSize | setTitleTextSize(@Dimension int sp) |
設(shè)置標(biāo)題文字大小 |
setCenterTitle | setCenterTitle(boolean isCenterTitle) |
設(shè)置標(biāo)題顯示模式(true:居中顯示 false:局左顯示) |
setTitleEllipsize | setTitleEllipsize(TextUtils.TruncateAt ellipsize) |
設(shè)置標(biāo)題ellipsize屬性 |
setMenuImageDrawable | setMenuImageDrawable(Drawable drawable) |
設(shè)置菜單按鈕圖片(菜單圖片和文字不能同時(shí)出現(xiàn),圖片優(yōu)先于文字顯示,此邏輯若有問題請(qǐng)?zhí)岢鯥ssues齿兔,后面修改) |
setMenuImageResource | setMenuImageResource(@DrawableRes int resId) |
設(shè)置菜單按鈕圖片 |
setMenuText | setMenuText(String menuText) setMenuText(@StringRes int resId) |
設(shè)置菜單文字 |
setMenuTextColor | setMenuTextColor(@ColorInt int color) |
設(shè)置菜單文字顏色 |
setMenuTextSize | setMenuTextSize(@Dimension int sp) |
設(shè)置菜單文字大小 |
setActivityAnim | setActivityAnim(@AnimRes int enter, @AnimRes int exit) |
設(shè)置activity進(jìn)入退出動(dòng)畫 |
clearActivityAnim | clearActivityAnim() |
清除activity動(dòng)畫 |
setUseRipple | setUseRipple(boolean isUseRipple) |
設(shè)置水波紋 |
setShowBorder | setShowBorder(boolean isShowBorder) |
設(shè)置底部分割線是否顯示 |
setBorderColor | setBorderColor(@ColorInt int color) |
設(shè)置底部分割線顏色 |
setBorderWidth | setBorderWidth(@Dimension float dp) |
設(shè)置底部分割線的寬度 |
setBackGroundColor | setBackGroundColor(@ColorInt int color) |
設(shè)置背景顏色 |
setOnBackListener | setOnBackListener(OnBackListener onBackListener) |
返回按鈕點(diǎn)擊監(jiān)聽,默認(rèn)監(jiān)聽為退出當(dāng)前activity抒和,返回前一個(gè)activity |
setOnMenuListener | setOnMenuListener(OnMenuListener onMenuListener) |
菜單按鈕點(diǎn)擊監(jiān)聽setOnTitleListener |
setOnTitleListener | setOnTitleListener(OnTitleListener onTitleListener) |
標(biāo)題點(diǎn)擊監(jiān)聽 |
getConfig | static Config getConfig() |
獲取全局配置的class |
自定義屬性
Name | Value | remark |
---|---|---|
tCenterTitle | boolean |
設(shè)置標(biāo)題顯示模式(true:居中顯示 false:局左顯示) |
tBackImage | reference |
設(shè)置返回按鈕圖片 |
tPadding | dimension |
設(shè)置子控件們的間距 |
tTitleTextSize | dimension |
設(shè)置標(biāo)題文字大小 |
tTitleTextColor | color |
設(shè)置標(biāo)題文字顏色 |
tTitleText | string |
設(shè)置標(biāo)題文字 |
tMenuTextSize | dimension |
設(shè)置菜單文字大小 |
tMenuTextColor | color |
設(shè)置菜單文字顏色 |
tMenuImage | reference |
設(shè)置菜單圖片(菜單圖片和文字不能同時(shí)出現(xiàn),圖片優(yōu)先于文字顯示彤蔽,此邏輯若有問題請(qǐng)?zhí)岢鯥ssues摧莽,后面修改) |
tMenuText | string |
設(shè)置菜單文字 |
tUseRipple | boolean |
設(shè)置是否使用水波紋 |
tBackgroundColor | color |
設(shè)置背景顏色 |
tBorderColor | color |
設(shè)置下劃線顏色 |
tShowBorder | boolean |
設(shè)置是否顯示下劃線 |
tBorderWidth | dimension |
設(shè)置下劃線寬度 |
tTitleEllipsize | enum |
設(shè)置標(biāo)題過長(zhǎng)時(shí)顯示方式 |