項目名稱:XPopup
項目作者:李曉俊
開源許可協議:Apache-2.0
項目地址:https://gitee.com/lxj_gitee/XPopup
項目簡介
XPopup 提供了 Android 開發中功能強大,交互優雅,動畫絲滑的通用彈窗。可以替代Dialog,PopupWindow,PopupMenu,BottomSheet,DrawerLayout,Spinner等組件,自帶十幾種效果良好的動畫, 支持完全的UI和動畫自定義。
項目特點
- 功能強大
內部封裝了常用的彈窗,內置十幾種良好的動畫,將彈窗和動畫的自定義設計的極其簡單;目前還沒有出現XPopup實現不了的彈窗效果。 內置彈窗允許你使用項目已有的布局,同時還能用上XPopup提供的動畫,交互和邏輯封裝。
- UI和動畫簡潔
遵循Material Design,在設計動畫的時候考慮了很多細節,過渡,層級的變化;或者說是模擬系統組件的動畫,具體可以從Demo中感受
- 交互優雅
實現了優雅的手勢交互,智能的嵌套滾動,智能的輸入法交互,具體看Demo
- 適配全面屏
目前適配了小米,華為,谷歌,OPPO,VIVO,三星,魅族,一加全系全面屏手機
- 自動監聽Activity生命周期,自動釋放資源。在Activity直接finish的場景也避免了內存泄漏
- 很好的易用性
所有的自定義彈窗只需繼承對應的類,實現你的布局,然后像Activity那樣,在onCreate方法寫邏輯即可
- 性能優異,動畫流暢;精心優化的動畫,讓你很難遇到卡頓場景
- 能在應用后臺彈出(需要申請懸浮窗權限,一行代碼即可)
- 支持androidx
- 完美支持RTL布局
設計思路
綜合常見的彈窗場景,作者將其分為幾類:
- Center類型,就是在中間彈出的彈窗,比如確認和取消彈窗,Loading彈窗
- Bottom類型,就是從頁面底部彈出,比如從底部彈出的分享窗體,知乎的從底部彈出的評論列表,內部已經處理好手勢拖拽和嵌套滾動
- Attach類型,就是彈窗的位置需要依附于某個View或者某個觸摸點,就像系統的PopupMenu效果一樣,但PopupMenu的自定義性很差,淘寶的商品列表篩選的下拉彈窗,微信的朋友圈點贊彈窗都是這種。
- DrawerLayout類型,就是從窗體的左邊或者右邊彈出,并支持手勢拖拽;好處是與界面解耦,可以在任何界面顯示DrawerLayout
- ImageViewer大圖瀏覽類型,就像掘金那樣的圖片瀏覽彈窗,帶有良好的拖拽交互體驗,內部嵌入了改良的PhotoView
- 全屏彈窗,彈窗是全屏的,就像Activity那樣,可以設置任意的動畫器;適合用來實現登錄,選擇性的界面效果。
- Position自由定位彈窗,彈窗是自由的,你可放在屏幕左上角,右下角,或者任意地方,結合強大的動畫器,可以實現各種效果。
部分組件效果演示

內置彈窗(支持復用已有布局)

自定義Bottom彈窗(天然支持嵌套滾動,多層彈窗)

自定義Attach彈窗(任意方向支持,靈活易用)

Drawer彈窗(手勢拖拽,狀態欄陰影)

ImageViewer大圖瀏覽彈窗
如果你想查看更多效果預覽或了解使用方法,那就點擊下方了解更多前往項目主頁看看吧,別忘了給它一個 Star 哦。