Android?DialogFragment使用之基類(lèi)封裝
關(guān)于安卓DialogFragment基類(lèi)封裝
對(duì)于DialogFragment,在androidX 1.1.0后,已修復(fù)內(nèi)存泄漏
本文內(nèi)容較短,直接上干貨,核心代碼如下:
/** * FileName: BaseDialogFragment * Author: lzt * Date: 2022/8/30 17:33 * 注意dialog fragment版本,1.1.0以上已修復(fù)內(nèi)存泄漏 */ public abstract class BaseDialogFragment extends DialogFragment { private int DEFAULT_WIDTH = WindowManager.LayoutParams.MATCH_PARENT;//寬 private int DEFAULT_HEIGHT = WindowManager.LayoutParams.WRAP_CONTENT;//高 private int DEFAULT_GRAVITY = Gravity.BOTTOM;//位置 private boolean mCancelable = true;//默認(rèn)可取消 private boolean mCanceledOnTouchOutside = true;//默認(rèn)點(diǎn)擊外部可取消 @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View mView = inflater.inflate(getLayoutId(), container, false); initViews(mView); return mView; } @NonNull @Override public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { Dialog mDialog = super.onCreateDialog(savedInstanceState); if (null != mDialog) {//初始化 mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); mDialog.setCanceledOnTouchOutside(mCanceledOnTouchOutside); mDialog.setCancelable(mCancelable); Window window = mDialog.getWindow(); if (null != window) { window.getDecorView().setPadding(0, 0, 0, 0); window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); WindowManager.LayoutParams lp = window.getAttributes(); lp.width = DEFAULT_WIDTH; lp.height = DEFAULT_HEIGHT; lp.gravity = DEFAULT_GRAVITY; lp.windowAnimations = android.R.style.Animation_InputMethod; window.setAttributes(lp); } mDialog.setOnKeyListener(new DialogInterface.OnKeyListener() { @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { return !mCancelable; } }); } return mDialog; } /** * 設(shè)置位置 * @param gravity */ public void setGravity(int gravity) { DEFAULT_GRAVITY = gravity; } /** * 設(shè)置寬 * @param width */ public void setWidth(int width) { DEFAULT_WIDTH = width; } /** * 設(shè)置高 * @param height */ public void setHeight(int height) { DEFAULT_HEIGHT = height; } /** * 設(shè)置點(diǎn)擊返回按鈕是否可取消 * * @param cancelable */ public void setCancelable(boolean cancelable) { mCancelable = cancelable; } /** * 設(shè)置點(diǎn)擊外部是否可取消 * * @param canceledOnTouchOutside */ public void setCanceledOnTouchOutside(boolean canceledOnTouchOutside) { mCanceledOnTouchOutside = canceledOnTouchOutside; } /** * 設(shè)置布局 * * @return */ protected abstract int getLayoutId(); /** * 初始化Views * * @param v */ protected abstract void initViews(View v); }
以上就是Android DialogFragment使用之基類(lèi)封裝的詳細(xì)內(nèi)容,更多關(guān)于Android DialogFragment基類(lèi)封裝的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android使用Dialog風(fēng)格彈出框的Activity
這篇文章主要為大家詳細(xì)介紹了Android使用Dialog風(fēng)格彈出框的Activity,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09Android開(kāi)發(fā)中ProgressDialog簡(jiǎn)單用法示例
這篇文章主要介紹了Android開(kāi)發(fā)中ProgressDialog簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了Android使用ProgressDialog的進(jìn)度條顯示與關(guān)閉、更新等事件響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下2017-10-10android設(shè)備不識(shí)別awk命令 缺少busybox怎么辦
這篇文章主要為大家詳細(xì)介紹了android設(shè)備不識(shí)別awk命令,缺少busybox的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04Android 中的類(lèi)文件和類(lèi)加載器詳情
這篇文章主要介紹了Android 中的類(lèi)文件和類(lèi)加載器詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06android?studio項(xiàng)目:綁定服務(wù)和線程實(shí)現(xiàn)計(jì)時(shí)器
這篇文章主要介紹了android?studio項(xiàng)目:綁定服務(wù)和線程實(shí)現(xiàn)計(jì)時(shí)器,完成一個(gè)秒表,具備啟停功能,通過(guò)綁定服務(wù)實(shí)現(xiàn)功能,通過(guò)Thread+handler更新界面,需要的朋友可以參考一下2021-12-12Android編程實(shí)現(xiàn)對(duì)文件夾里文件排序的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)對(duì)文件夾里文件排序的方法,涉及Android文件操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-01-01Android如何防止apk程序被反編譯(尊重勞動(dòng)成果)
作為Android應(yīng)用開(kāi)發(fā)者,不得不面對(duì)一個(gè)尷尬的局面,就是自己辛辛苦苦開(kāi)發(fā)的應(yīng)用可以被別人很輕易的就反編譯出來(lái),天下痛苦之事莫過(guò)于此啊,本文會(huì)介紹一種防止apk程序被反編譯的方法,感興趣的朋友可以了解下哦2013-01-01