
3分鐘集成NiceDialog基于DialogFragment的Android彈窗庫快速上手教程【免費下載鏈接】NiceDialogA nice dialog, that is based on DialogFragment項目地址: https://gitcode.com/gh_mirrors/ni/NiceDialog在 Android 開發(fā)中彈窗Dialog幾乎是每個應用都繞不開的功能但傳統(tǒng)AlertDialog寫法繁瑣、樣式難調(diào)還要處理屏幕旋轉(zhuǎn)和生命周期問題。今天要介紹的NiceDialog是一款基于DialogFragment的輕量級Android 彈窗庫主打一行代碼彈窗只需 3 分鐘即可完成集成并跑出第一個彈窗無論新手還是老手都能快速上手。上圖是 NiceDialog 示例工程中紅包彈窗的效果只需指定一張布局就能做出這種高顏值彈窗。NiceDialog 是什么憑什么好用NiceDialog 在DialogFragment之上做了一層簡潔封裝核心代碼集中在 BaseNiceDialog.java 和 NiceDialog.java 兩個文件里設(shè)計非常輕巧。它解決了原生彈窗的三大痛點?寫法簡單鏈式調(diào)用一行代碼完成彈窗創(chuàng)建與展示?生命周期安全基于 Fragment 實現(xiàn)屏幕旋轉(zhuǎn)自動保存、恢復彈窗狀態(tài)?動畫隨心配內(nèi)置上下左右進出場動畫一行配置即可切換3分鐘快速集成 NiceDialog 的完整步驟第一步添加 JitPack 倉庫與依賴在項目根目錄的build.gradle中配置 JitPack 倉庫然后添加依賴即可整個過程無需 clone 源碼allprojects { repositories { maven { url https://jitpack.io } } }dependencies { implementation com.github.SheHuan:NiceDialog:1.2.0 }如果你想閱讀或修改源碼也可以直接 clone 倉庫體驗完整示例工程git clone https://gitcode.com/gh_mirrors/ni/NiceDialog彈窗庫本體位于nicedialog/目錄演示代碼位于app/目錄。第二步用一行代碼彈出第一個彈窗依賴同步完成后在 Activity 里寫下這段代碼即可看到彈窗效果NiceDialog.init() .setLayoutId(R.layout.dialog) // 指定彈窗布局 .setConvertListener((holder, dialog) - { // 在這里給彈窗里的控件綁定事件 }) .show(getSupportFragmentManager()); // 顯示彈窗沒錯核心就三步指定布局 → 綁定控件 → show 展示。更多完整示例可以參考演示工程中的 MainActivity.java里面內(nèi)置了分享、好友設(shè)置、評論、紅包、加載提示等 7 種彈窗。第三步常用配置速查表NiceDialog 提供了豐富的鏈式配置方法這張速查表幫你快速找到想要的配置配置方法作用默認值setGravity()彈窗位置居中 / 底部 / 右側(cè)等居中setMargin()彈窗左右邊距dp0setWidth() / setHeight()彈窗寬高dp屏幕寬 / WRAP_CONTENTsetDimAmount()背景遮罩透明度 [0-1]0.5setOutCancel()點擊外部是否關(guān)閉truesetAnimStyle()進出場動畫跟隨位置自動匹配 小提示setMargin()和setWidth()二選一使用即可避免配置沖突。進階玩法如何打造底部彈窗與自定義動畫最快的底部彈窗配置方法常見的底部彈出分享面板只需兩行配置NiceDialog.init() .setLayoutId(R.layout.share_layout) .setGravity(Gravity.BOTTOM) // 底部彈出 .show(getSupportFragmentManager());設(shè)置Gravity.BOTTOM后NiceDialog 會自動匹配底部進出場動畫動畫資源位于nicedialog/src/main/res/anim/目錄無需手動指定。繼承 BaseNiceDialog 打造可復用彈窗如果同一彈窗需要在多個頁面復用推薦繼承BaseNiceDialog并使用原生 Fragment 傳參方式傳遞數(shù)據(jù)public class ConfirmDialog extends BaseNiceDialog { public static ConfirmDialog newInstance(String type) { Bundle bundle new Bundle(); bundle.putString(type, type); ConfirmDialog dialog new ConfirmDialog(); dialog.setArguments(bundle); return dialog; } // 實現(xiàn) intLayoutId() 與 convertView() 兩個抽象方法即可 }展示時依舊一行搞定ConfirmDialog.newInstance(1).setMargin(60).setOutCancel(false).show(...)。自定義動畫的小技巧NiceDialog 默認主題繼承自Theme.AppCompat.Light.Dialog可在 styles.xml 中查看默認動畫風格。想自定義進出場動畫只需寫一個 Animation 風格再通過setAnimStyle()傳入例如縮放 漸變的組合動畫style nameMyAnim parentandroid:Animation item nameandroid:windowEnterAnimationanim/enter/item item nameandroid:windowExitAnimationanim/exit/item /style結(jié)語為什么推薦用 NiceDialog 做 Android 彈窗總結(jié)下來NiceDialog 作為一款基于 DialogFragment 的 Android 彈窗庫把配置繁瑣、樣式難調(diào)的彈窗開發(fā)壓縮到了極致3 分鐘集成、一行代碼彈窗、內(nèi)置動畫、生命周期安全。如果你正在尋找一款簡單好用的 Android 彈窗解決方案不妨現(xiàn)在就上手試試吧【免費下載鏈接】NiceDialogA nice dialog, that is based on DialogFragment項目地址: https://gitcode.com/gh_mirrors/ni/NiceDialog創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考