一個快速建立對話方塊的工具類庫
效果圖如下:
特點
- 支援各種樣式的配置
- 整合了sweet-alert-dialog
- 整合了Titanic的進度框動畫樣式
- 整合了AVLoadingIndicatorView的動畫樣式
如何使用
引入依賴庫
allprojects { repositories { ... maven { url 'https://jitpack.io' } } }複製程式碼
- 新增compile
dependencies { compile 'com.github.yilylong:CBDialog:v1.0.2' }複製程式碼
- 基本使用方法
new CBDialogBuilder(this)
.setTouchOutSideCancelable(true)
.showCancelButton(true)
.setTitle("這是一個普通樣式的對話方塊")
.setMessage("this is a normal CBDialog")
.setConfirmButtonText("確定")
.setCancelButtonText("取消")
.setDialogAnimation(CBDialogBuilder.DIALOG_ANIM_SLID_BOTTOM)
.create().show();複製程式碼
可以傳入不同的樣式
CBDialogBuilder.DIALOG_STYLE_NORMAL CBDialogBuilder.DIALOG_STYLE_PROGRESS CBDialogBuilder.DIALOG_STYLE_PROGRESS_TITANIC CBDialogBuilder.DIALOG_STYLE_PROGRESS_AVLOADING new CBDialogBuilder(this, CBDialogBuilder.DIALOG_STYLE_PROGRESS_TITANIC).create(); .setTouchOutSideCancelable(true) 設定是否點選對話方塊以外的區域dismiss對話方塊 .showCancelButton(true) 是否顯示取消按鈕 .setDialogAnimation(CBDialogBuilder.DIALOG_ANIM_SLID_BOTTOM) 設定對話方塊的動畫樣式 .setDialoglocation(CBDialogBuilder.DIALOG_LOCATION_BOTTOM) 設定對話方塊位於螢幕的位置 .setButtonClickListener(true, new CBDialogBuilder.onDialogbtnClickListener() { 新增按鈕回撥監聽 @Override public void onDialogbtnClick(Context context, Dialog dialog, int whichBtn) { switch (whichBtn) { case BUTTON_CONFIRM: Toast.makeText(context, "點選了確認按鈕", Toast.LENGTH_SHORT).show(); break; case BUTTON_CANCEL: Toast.makeText(context, "點選了取消按鈕", Toast.LENGTH_SHORT).show(); break; default: break; } } })複製程式碼
設定一個列表 和 列表項選中回撥監聽
.setItems(new String[]{"較小", "中等", "較大", "巨無霸"}, new CBDialogBuilder.onDialogItemClickListener() { @Override public void onDialogItemClick(CBDialogBuilder.DialogItemAdapter ItemAdapter,Context context, CBDialogBuilder dialogbuilder, Dialog dialog,int position) { //TODO 儲存選中設定 dialog.dismiss(); } }, 2)複製程式碼
- 設定一個進度框的超時監聽
.setOnProgressOutTimeListener(5, new CBDialogBuilder.onProgressOutTimeListener() { @Override public void onProgressOutTime(Dialog dialog, TextView dialogMsgTextView) { // do your work } })複製程式碼
- 設定avloading進度框動畫樣式顏色
.setProgressIndicatorColor(0xaa198675) .setProgressIndicator(CBDialogBuilder.INDICATOR_BallRotate)複製程式碼
設定自定義的dialog佈局檔案
在構建的時候傳入R.layout.layout_custom_dialog_layout自定義佈局檔案即可,但是裡面的個控制元件(標題,訊息,按鈕)的ID要跟cb_dialog.xml 裡面一致
new CBDialogBuilder(this, R.layout.layout_custom_dialog_layout, 1.0f) ... .create().show();複製程式碼
- 設定自定義訊息佈局檔案
.setView(R.layout.custom_msg_view)複製程式碼
更多配置方法參考DEMO
專案地址
相信自己,沒有做不到的,只有想不到的
如果你覺得此文對您有所幫助,歡迎入群 QQ交流群 :644196190
微信公眾號:終端研發部