一個(gè)可以自由定制外觀(guān)贴铜、支持拖拽消除的MaterialDesign風(fēng)格Android BadgeView
一些特性
1.隨意定制外觀(guān)拷况,包括Badge位置、底色清蚀、邊框、陰影灯萍、文字顏色(支持透明色)轧铁、大小每聪、內(nèi)外邊距等
2.Badge數(shù)字小于0時(shí)顯示dot旦棉,等于0時(shí)隱藏整個(gè)Badge,在普通模式下超過(guò)99時(shí)顯示99+药薯,精確模式下顯示具體值
3.支持設(shè)置文本內(nèi)容
4.支持設(shè)置圖片背景
5.支持類(lèi)似QQ的拖拽消除效果(默認(rèn)關(guān)閉)
6.支持以動(dòng)畫(huà)的方式隱藏Badge
使用方法
implementation 'q.rorbin:badgeview:1.1.3'
new QBadgeView(context).bindTarget(textview).setBadgeNumber(5);
相關(guān)方法 | 說(shuō)??明 |
---|---|
setBadgeNumber | 設(shè)置Badge數(shù)字 |
setBadgeText | 設(shè)置Badge文本 |
setBadgeTextSize | 設(shè)置文本字體大小 |
setBadgeTextColor | 設(shè)置文本顏色 |
setExactMode | 設(shè)置是否顯示精確模式數(shù)值 |
setBadgeGravity | 設(shè)置Badge相對(duì)于TargetView的位置 |
setGravityOffset | 設(shè)置外邊距 |
setBadgePadding | 設(shè)置內(nèi)邊距 |
setBadgeBackgroundColor | 設(shè)置背景色 |
setBadgeBackground | 設(shè)置背景圖片 |
setShowShadow | 設(shè)置是否顯示陰影 |
setOnDragStateChangedListener | 打開(kāi)拖拽消除模式并設(shè)置監(jiān)聽(tīng) |
stroke | 描邊 |
hide | 隱藏Badge |
在ListView或者RecyclerView中使用
可參考demo中ListViewActivity绑洛、RecyclerViewActivity
一些注意事項(xiàng)
- 請(qǐng)不要在xml中創(chuàng)建Badge
- Badge和TargetView綁定是采用替換TargetView的Parent方式實(shí)現(xiàn)的,同時(shí)將Parent的Id和TargetView的Id設(shè)置成一樣來(lái)保證不會(huì)在RelativeLayout中出現(xiàn)位置錯(cuò)亂問(wèn)題童本,所以在bindTarget后再次使用findViewById(TargetViewId)得到的會(huì)是Parent而不是TargetView真屯,此時(shí)建議使用Badge.getTargetView方法來(lái)獲取TargetView,如果您有更好的解決方式并愿意和我分享穷娱,請(qǐng)?jiān)贗ssues中提交給我或者給我發(fā)郵件绑蔫,謝謝。
BUG總結(jié)
本人在使用過(guò)程中遇到的一些坑:
1.在使用bindTarget時(shí),最好不要綁定到一些RadioButton等按鈕上泵额,可在按鈕邊添加TextView(這個(gè)根據(jù)自己情況)配深,因?yàn)榭赡艹霈F(xiàn)按鈕不能點(diǎn)擊的情況。
2.如果綁定的View存在GONE隱藏的情況嫁盲,Badge也要設(shè)置隱藏不然會(huì)出現(xiàn)隱藏部分空白篓叶。
以上是本人使用中遇到的問(wèn)題,如果你在使用中遇到問(wèn)題還有交流羞秤。