XPopup2.0版本重磅發佈,底層改成Dialog實現,並帶來可觀的動畫性能優化和交互細節的提高!

XPopup

2.0.0版本重磅來襲,底層改成Dialog實現,並帶來可觀的動畫性能優化和交互細節的提高,數十個Bug修復!!!

功能強大,UI簡潔,交互優雅的通用彈窗!能夠替代Dialog,PopupWindow,PopupMenu,BottomSheet,DrawerLayout,Spinner等組件,自帶十幾種效果良好的動畫, 支持徹底的UI和動畫自定義!它有這樣幾個特色:android

  • 功能強大,內部封裝了經常使用的彈窗,內置十幾種良好的動畫,將彈窗和動畫的自定義設計的極其簡單;目前尚未出現XPopup實現不了的彈窗效果。 內置彈窗的UI是固定的,但容許你使用項目已有的佈局或者本身的佈局,同時還能用上XPopup提供的動畫,交互和邏輯封裝。
  • UI和動畫簡潔,遵循Material Design,在設計動畫的時候考慮了不少細節,過渡,層級的變化;或者說是模擬系統組件的動畫,具體能夠從Demo中感覺
  • 交互優雅,實現了優雅的手勢交互,智能的嵌套滾動,智能的輸入法交互,具體看Demo
  • 適配全面屏,目前適配了小米,華爲,谷歌,OPPO,VIVO,三星,魅族,一加全系全面屏手機
  • 自動監聽Activity生命週期,自動釋放資源。在Activity直接finish的場景也避免了內存泄漏
  • 易用性,全部的自定義彈窗只需繼承對應的類,實現你的佈局,而後像Activity那樣,在onCreate方法寫邏輯便可
  • 性能優異,動畫流暢;精心優化的動畫,讓你很難遇到卡頓場景
  • 能在應用後臺彈出(須要申請懸浮窗權限,一行代碼便可)
  • 支持androidx

設計思路: 綜合常見的彈窗場景,我將其分爲幾類:git

  • Center類型,就是在中間彈出的彈窗,好比確認和取消彈窗,Loading彈窗
  • Bottom類型,就是從頁面底部彈出,好比從底部彈出的分享窗體,知乎的從底部彈出的評論列表,我內部會處理好手勢拖拽和嵌套滾動
  • Attach類型,就是彈窗的位置須要依附於某個View或者某個觸摸點,就像系統的PopupMenu效果同樣,但PopupMenu的自定義性不好,淘寶的商品列表篩選的下拉彈窗也屬於這種,微信的朋友圈點贊彈窗也是這種。
  • DrawerLayout類型,就是從窗體的坐邊或者右邊彈出,並支持手勢拖拽;好處是與界面解耦,能夠在任何界面顯示DrawerLayout
  • ImageViewer大圖瀏覽類型,就像掘金那樣的圖片瀏覽彈窗,帶有良好的拖拽交互體驗,內部嵌入了改良的PhotoView
  • 全屏彈窗,彈窗是全屏的,就像Activity那樣,能夠設置任意的動畫器;適合用來實現登陸,選擇性的界面效果。
  • Position自由定位彈窗,彈窗是自由的,你可放在屏幕左上角,右下角,或者任意地方,結合強大的動畫器,能夠實現各類效果。

演示

內置彈窗(支持複用已有佈局) 列表Center彈窗
Bottom列表彈窗(手勢拖拽,橫豎滾動) 自定義Bottom彈窗(自然支持嵌套滾動,多層彈窗)
Attach彈窗(動畫優雅,智能定位,長按支持) 自定義Attach彈窗(任意方向支持,靈活易用)
Drawer彈窗(手勢拖拽,狀態欄陰影) 全屏彈窗(可做爲Activity替代品,搭配十幾個動畫使用更佳)
Position自由定位彈窗(放在屏幕任意地方) 自定義貼在輸入法之上的彈窗
PartShadow局部陰影彈窗 向上向下均可以
ImageViewer大圖瀏覽彈窗(拖拽天然,如絲般順滑) 超長圖片支持(圖像漸變過渡,優雅從容)
大圖瀏覽彈窗,支持界面自定義 配合ViewPager使用
自定義彈窗和自定義動畫 內置優雅美觀的動畫器,可搭配彈窗結合使用
應用後臺彈出(一行代碼實現權限申請) 聯想搜索實現,垂手可得

快速體驗

Gif錄製的優勢卡頓,真機預覽效果更佳。掃描二維碼下載Demo: github

若是二維碼圖片不可見,點我下載Demo體驗api

Gradle

implementation 'com.lxj:xpopup:最新版本'
複製代碼

必須添加的依賴庫,版本號在26以及以上便可,版本不用和我一致:性能優化

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
複製代碼

若是你是androidx,則上面三個對應的androidx依賴是,版本不用和我一致:bash

implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.3.0-alpha01'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
複製代碼

使用文檔

具體使用方法全在WIKI中,請查看下面各個章節:微信

混淆

-dontwarn com.lxj.xpopup.widget.**
-keep class com.lxj.xpopup.widget.**{*;}
複製代碼

誰在用XPopup

我本人很但願您能點擊這裏附上使用這個庫的App名或者公司名,這樣會給我更大的動力和熱情去維護這個類庫。markdown

根據熱心朋友提供的信息,目前使用XPopup的產品和公司有:app

打個賞

若是你以爲我幫助到了你,節省了你的時間,能夠對我進行打賞(打賞時能夠附上本身的大名和Github地址),金額隨意,以表支持。打賞名單jsp

聯繫方式

Github地址:github.com/li-xiaojun/…

XPopup交流羣:783659607

Gmail: lxj16167479@gmail.com

QQ Email: 16167479@qq.com

QQ: 16167479

相關文章
相關標籤/搜索