Android BGATitlebar實現iOS風格的Titlebar
工作以來公司UI設計師出的Android效果圖都是iOS風格的Titlebar,新專案還是用原來那一套,不想重複造輪子,所以趁著這次練習 仿新浪微博Android客戶端,抽取一個通用的iOS風格的Titlebar
但是作為Android開發者,平時學習練手時還是得緊跟Google的步伐,說不定哪天公司的UI射擊獅們就出一套MD風格的效果圖
demo中演示了各種情況的標題和新浪微博首頁選擇微博分類案例
效果圖
基本使用
1.新增Gradle依賴
dependencies { compile 'com.android.support:appcompat-v7:22.2.0' compile 'cn.bingoogolapple:bga-titlebar:latestVersion@aar' }
2.在佈局檔案中新增BGATitlebar
<cn.bingoogolapple.titlebar.BGATitlebar android:id="@+id/titlebar" style="@style/TitleBar" app:bgatitlebar_leftDrawable="@drawable/selector_nav_friendsearch" app:bgatitlebar_rightDrawable="@drawable/selector_nav_pop" app:bgatitlebar_titleDrawable="@drawable/selector_nav_arrow_orange" app:bgatitlebar_titleDrawablePadding="3dp" app:bgatitlebar_titleText="bingoogolapple" />
3.在Activity或者Fragment中配置BGATitlebar
mTitlebar = (BGATitlebar) findViewById(R.id.titlebar); mTitlebar.setDelegate(new BGATitlebar.BGATitlebarDelegate() { @Override public void onClickLeftCtv() { // 可選,根據實際業務重寫該方法 } @Override public void onClickTitleCtv() { // 可選,根據實際業務重寫該方法 } @Override public void onClickRightCtv() { // 可選,根據實際業務重寫該方法 } });
自定義屬性說明
建議在專案中把下面這五項定義在styles.xml裡
- bgatitlebar_leftAndRightTextColor 左右按鈕文字顏色
- bgatitlebar_titleTextColor 中間標題文字顏色
- bgatitlebar_leftAndRightTextSize 左右按鈕文字大小
- bgatitlebar_titleTextSize 中間標題文字大小
- bgatitlebar_leftAndRightPadding 左右按鈕在水平方向上的padding
下面這幾項根據每個頁面的業務寫在layout中(可以把帶有返回按鈕的titlebar也單獨抽取一個style)
- bgatitlebar_leftText 左邊按鈕的文字
- bgatitlebar_rightText 右邊按鈕的文字
- bgatitlebar_titleText 中間標題文字
- bgatitlebar_leftDrawable 左邊按鈕圖示
- bgatitlebar_rightDrawable 右邊按鈕圖示
- bgatitlebar_titleDrawable 中間標題圖示
- bgatitlebar_titleDrawablePadding 中間按鈕文字和圖示之間的間距(當既有titleText,又有titleDrawable時,設定該屬性,例如新浪微博首頁選擇微博分類 )
- bgatitlebar_leftDrawablePadding 左邊按鈕文字和圖示之間的間距(當既有leftText,又有leftDrawable時,設定該屬性)
- bgatitlebar_rightDrawablePadding 右邊按鈕和圖示之間的間距(當既有rightText,又有rightDrawable時,設定該屬性)
下面三項通常情況下不用,使用預設值就好。某個介面標題特別長並且左右文字短或者左右文字特別長並且標題特別短時單獨配置
- bgatitlebar_leftMaxWidth 左邊按鈕的最大寬度
- bgatitlebar_rightMaxWidth 右邊按鈕的最大寬度
- bgatitlebar_titleMaxWidth 中間標題的最大寬度
下面三項通常情況下不用,使用預設值就好。
- bgatitlebar_isTitleTextBold 標題文字是否為粗體,預設為true
- bgatitlebar_isLeftTextBold 左邊文字是否為粗體,預設為false
- bgatitlebar_isRightTextBold 右邊文字是否為粗體,預設為false
程式碼是最好的老師,更多詳細用法請檢視demo
相關文章
- Android Dialog風格彈出框的ActivityAndroid
- React 實現 instagram 風格進度條React
- Yii2.0 實現RESTful風格的簡單APIRESTAPI
- Flutter 自定義元件實戰之Cupertino(iOS)風格的核取方塊Flutter元件iOS
- Android 端影象多風格遷移Android
- 用CSS Houdini實現一個Material風格的按鈕CSS
- [譯] Story 中 Type Mode 在 iOS 和 Android 上的實現iOSAndroid
- android中的深度學習——快速風格遷移Android深度學習
- SpringBoot整合Redis使用Restful風格實現CRUD功能Spring BootRedisREST
- 基於MySql和Sails.js的RESTful風格的api實現MySqlAIJSRESTAPI
- 基於libcurl實現REST風格http/https的get和postRESTHTTP
- flutter的進階之路之Material Design與IOS風格元件FlutterMaterial DesigniOS元件
- Flutter實現Android、iOS跨平臺經驗總結FlutterAndroidiOS
- 使用 Fastlane 實現 iOS 跟 Android 自動打包指令碼ASTiOSAndroid指令碼
- 實現dcat-admin的雙選單風格( 頂部+左側)
- win10桌面ios風格怎麼設定_win10如何將桌面變成蘋果ios風格介面Win10iOS蘋果
- Android快速入門之使用AdapterView展示不同風格的列表AndroidAPTView
- iOS 中使用 FlexBox 佈局實現圖片九宮格iOSFlex
- Python 超簡單實現 9 種影像風格遷移Python
- iOS 仿淘寶實現商品規格圖片的放大縮小功能iOS
- 雲原生系列6 基於springcloud架構風格的本地debug實現SpringGCCloud架構
- BAIR提出MC-GAN,使用GAN實現字型風格遷移AI
- 使用three.js實現炫酷的酸性風格3D頁面JS3D
- Ios、Android微信瀏覽器後退跳轉實現,及遇到的bugiOSAndroid瀏覽器
- iOS - 對 block 實現的探究iOSBloC
- 伯克利AI實驗室出品:用GAN實現字型風格遷移AI
- Gin與Mysql實現簡單Restful風格API實戰示例詳解PRHCMySqlRESTAPI
- 最接近ios設計風格的移動端頁面前端框架-muiiOS前端框架UI
- Android5.0以後,materialDesign風格的加陰影和裁剪效果Android
- Android 完美實現手機號344格式化效果Android
- 淺風的部落格
- 現代化網站品牌和風格網站
- 軟體架構風格——閉環架構風格(過程風格)架構
- iOS 中的 GCD 實現詳解iOSGC
- 探索iOS中Block的實現原理iOSBloC
- Android懸浮框的實現Android
- Android長截圖的實現Android
- Android 回撥方法的實現Android
- 軟體架構風格——倉庫風格架構