Android 开发 MaterialDialog框架的详解
生活随笔
收集整理的這篇文章主要介紹了
Android 开发 MaterialDialog框架的详解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
開始之前還是需要廢話一下,因為有一些坑需要告知。首先MaterialDialog在GitHub上作者已經轉型使用100% Kotlin語言編寫,雖然可以在Java里調用Kotlin使用。但是個人暫時不想接觸,所以依然會使用老版本的MaterialDialog。Java最后的版本是0.9.6.0版本,所以我們以這個版本為例子記錄一些平時個人用到的例子。另外不需要太擔心高版本無法適配,目前在Android 9.0版本依然效果良好?! ?/p>
作者的GitHub地址:https://github.com/afollestad/material-dialogs
使用參考博客:https://blog.csdn.net/u010904027/article/details/53535590
依賴
implementation 'com.afollestad.material-dialogs:core:0.9.6.0'
代碼例子
等待彈窗例子
/**
* 等待彈窗1
*/
public void waitFor1() {
MaterialDialog waitForDialog = new MaterialDialog.Builder(this)
.content("正在登入...")
.progress(true,-1)//等待圖標 true=圓形icon false=進度條
.canceledOnTouchOutside(false)//點擊外部不取消對話框
.build();
waitForDialog.show();
}
/**
* 等待彈窗2
*/
@Override
public void waitFor2() {
MaterialDialog waitForDialog = new MaterialDialog.Builder(this)
.content("正在登入...")
.progress(true,-1)//等待圖標 true=圓形icon false=進度條
.cancelable(false)//不會被取消 (包括返回鍵和外部點擊都無法取消)
.build();
waitForDialog.show();
}
普通對話框例子
public void dialog() {
MaterialDialog dialog = new MaterialDialog.Builder(this)
.title("提示")//標題
.content("您未添加人臉識別,請點擊確定錄入")//內容
.icon(getResources().getDrawable(R.mipmap.ic_logo,null))//圖標
.positiveText("確定") //肯定按鍵
.neutralText("稍后詢問") //中性按鍵
.negativeText("取消") //否定按鍵
.cancelable(true)
.onPositive(new MaterialDialog.SingleButtonCallback() { //監聽肯定按鍵
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
}
})
.onNeutral(new MaterialDialog.SingleButtonCallback() { //監聽中性按鍵
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
}
})
.onNegative(new MaterialDialog.SingleButtonCallback() { //監聽否定按鍵
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
}
})
.onAny(new MaterialDialog.SingleButtonCallback() {//三個按鍵一起監聽
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
switch (which){
case POSITIVE:
break;
case NEUTRAL:
break;
case NEGATIVE:
break;
}
//或者這樣
// if (DialogAction.POSITIVE == which){
//
// }
}
})
.build();
dialog.show();
}
單選列表對話框例子
private void singleElectionDialog(){
int [] itemId = {101,102,103,104,105};
String [] contentArray = {"一","二","三","四","五"};
MaterialDialog materialDialog = new MaterialDialog.Builder(this)
.items(contentArray)//添加item內容數組
.itemsIds(itemId)//添加item的id
.itemsCallback(new MaterialDialog.ListCallback() { //點擊回調
@Override
public void onSelection(MaterialDialog dialog, View itemView, int position, CharSequence text) {
Log.e("test", "onSelection: id="+itemView.getId() );
}
})
.build();
materialDialog.show();
}
效果圖:
RecyclerView實現單選列表例子
MaterialDialog materialDialog = new MaterialDialog.Builder(this)
.title("標題")
.adapter(mRecyclerViewAdapter,new LinearLayoutManager(this))
.positiveText(R.string.cancel)
.build();
materialDialog.show();
注意這里的.adapter(mRecyclerViewAdapter,new LinearLayoutManager(this)), 適配器一定是RecyclerView的,不能使用ListView,而new LinearLayoutManager(this) 其實就是RecyclerView 布局方向參數.
item點擊監聽,請參考RecyclerView的具體用法,直接在適配器里實現點擊監聽.
輸入框
private static MaterialDialog tipsDialog(Context context) {
MaterialDialog tipsDialog = new MaterialDialog.Builder(context)
.title("進入開發模式")
.input("請輸入密碼", "", new MaterialDialog.InputCallback() {
@Override
public void onInput(@NonNull MaterialDialog dialog, CharSequence input) {
}
})
.cancelable(false)
.positiveText("確定")
.negativeText("取消")
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
L.e("輸入的密碼內容=" + dialog.getInputEditText().getText().toString());
if (TextUtils.isEmpty(dialog.getInputEditText().getText().toString())) {
Toast.makeText(context, "您沒有輸入密碼", Toast.LENGTH_SHORT).show();
dialog.dismiss();
dialog = null;
return;
}
if (!dialog.getInputEditText().getText().toString().equals(PASSWORD)) {
Toast.makeText(context, "密碼錯誤", Toast.LENGTH_SHORT).show();
dialog.dismiss();
dialog = null;
return;
}
Toast.makeText(context, "密碼正確", Toast.LENGTH_SHORT).show();
dialog.dismiss();
dialog = null;
}
})
.onNegative(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
dialog.dismiss();
dialog = null;
}
})
.build();
return tipsDialog;
}
總結
以上是生活随笔為你收集整理的Android 开发 MaterialDialog框架的详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cdr文件过大导出pdf打不开_PDF文
- 下一篇: 蔚来汽车3月交付10378台 目标今年销