萬能的dialog庫(包括類似popwindow效果)

AWeiLoveAndroid發表於2017-06-06

博主最近發現了一個萬能的dialog庫

一、目前這個庫具有的主要功能如下:

material風格(v7支援包中的),ios風格,自動獲取頂層activity,可在任意介面彈出,可在任意執行緒彈出。(也就是說安卓也可以實現ios風格的dialog,666,是不是吊炸天呢?博主再也不會被ios哥們嘲笑了。博主也可以輕鬆實現它們系統dialog的效果)

二、先看一下1.1.5版本的特性:

 loading對話方塊和ios風格的dialog傳入context和activity均可彈出dialog.

 樣式包括常用的ios風格dialog和meterial design風格的dialog.

 自定義樣式:可以傳入自定義的view,定義好事件,本工具負責顯示

 考慮了顯示內容超多時的滑動和與螢幕的間隙.

三、使用前的導包:

步驟1.將JitPack儲存庫新增到您的構建檔案中

allprojects {

    repositories {

        …

        maven { url “https://jitpack.io” }

    }

}

步驟2.新增依賴關係

dependencies {

    compile `com.github.hss01248:DialogUtil:1.1.5`

}

最新版本請看這裡的版本是多少,就寫多少:

https://github.com/hss01248/DialogUtil/releases

四、初始化

五、示例程式碼(比如在MainActivity裡面)

以下程式碼是模仿ios的dialog風格(佈局裡面定義一個button就行了),執行圖如下圖:

程式碼如下:

六、相關回撥原始碼解析

MyDialogListener原始碼解釋:

MyItemDialogListener原始碼解釋:

七、不同樣式載入使用方法

(1)ios樣式的載入

  buildLoading( )

  buildLoading( CharSequence msg)

  updateLoadingMsg(final String msg)//更新msg

(2)android樣式的載入

  buildMdLoading( )

  buildMdLoading( CharSequence msg)

  updateLoadingMsg(final String msg)//更新msg

(3)ProgressDialog的水平

  buildProgress( CharSequence msg,boolean isHorizontal)

  //更新進度

  updateProgress(final Dialog dialog, final int progress, final int max, final CharSequence msg, final boolean isHorizontal)

(4)ProgressiveDialog of Spinner,用文字顯示的進度(自動計算):

(5)Appcompat-v7的AlertDialog

1)buildMdAlert( CharSequence title, CharSequence msg, MyDialogListener listener)

2)buildMdSingleChoose( CharSequence title, int defaultChosen, CharSequence[] words, MyItemDialogListener listener)

3)buildMdMultiChoose( CharSequence title, CharSequence[] words, List selectedIndexs, MyDialogListener btnListener)

(6)IOS風格(含按下效果)

1)buildIosAlert( CharSequence title, CharSequence msg, MyDialogListener listener)

2)buildIosAlertVertical( CharSequence title, CharSequence msg, MyDialogListener listener)

3)buildNormalInput( CharSequence title, CharSequence hint1,

         CharSequence hint2,CharSequence firstTxt, CharSequence secondTxt, MyDialogListener listener)

4)buildIosSingleChoose( List words, MyItemDialogListener listener)

5)buildBottomItemDialog( List words, CharSequence bottomTxt, MyItemDialogListener listener)

(7)BottomSheetDialog的設計

1)buildBottomSheetLv(CharSequence title, List datas, CharSequence bottomTxt, MyItemDialogListener listener)

2)buildBottomSheetGv( CharSequence title, List datas, CharSequence bottomTxt, int columnsNum ,MyItemDialogListener listener)

(8)GridView中拉出來時:

(9)彈出自己定義的一個檢視:(示例圖中有一個網頁檢視)

ViewGroup customView = (ViewGroup) View.inflate(this,R.layout.customview,null);

final ConfigBean bean = StyledDialog.buildCustom(customView, Gravity.CENTER);

final Dialog dialog1 =  bean.show();


github地址如下:

https://github.com/glassLake/DialogUtils(這個庫已經停止更新)請移步下面這個庫:

https://github.com/hss01248/DialogUtil   (博主目前使用的是1.1.5版本)


相關文章