之前浏览github的时候发现一个比较好用的MD风格的Dialog。这里记录一下使用。
Github地址:https://github.com/afollestad/material-dialogs
导入
compile 'com.afollestad.material-dialogs:core:0.9.1.0'
compile 'com.afollestad.material-dialogs:commons:0.9.1.0'
具体的使用
- Basic Dialog
简单的dialog
new MaterialDialog.Builder(MainActivity.this)
.title("basic dialog")
.content("一个简单的dialog,高度会随着内容改变,同时还可以嵌套RecyleView")
.iconRes(R.drawable.icon)
.positiveText("同意")
.negativeText("不同意")
.neutralText("更多信息")
.widgetColor(Color.BLUE)//不再提醒的checkbox 颜色
//CheckBox
.checkBoxPrompt("不再提醒", false, new CompoundButton.OnCheckedChangeListener(){
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if (b) {
Toast.makeText(MainActivity.this, "不再提醒", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, "会再次提醒", Toast.LENGTH_LONG).show();
}
}
})
//嵌套recycleview,这个的点击事件可以先获取此Recycleview对象然后自己处理
.adapter(new RecycleviewAdapter(getData(), MainActivity.this), new LinearLayoutManager(MainActivity.this))
.itemsCallback(new MaterialDialog.ListCallback() {
@Override
public void onSelection(MaterialDialog dialog, View itemView, int position, CharSequence text) {
dataChoose = "下标:" + position + " and 数据:" + mData.get(position);
}
})
//点击事件添加 方式1
.onAny(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
if (which == DialogAction.NEUTRAL) {
Toast.makeText(MainActivity.this, "更多信息", Toast.LENGTH_LONG).show();
} else if (which == DialogAction.POSITIVE) {
Toast.makeText(MainActivity.this, "同意" + dataChoose, Toast.LENGTH_LONG).show();
} else if (which == DialogAction.NEGATIVE) {
Toast.makeText(MainActivity.this, "不同意", Toast.LENGTH_LONG).show();
}
}
})
.show();
相应的效果:
简单的diaolog,同意和不同意的字体颜色是默认是R.color.colorAccent
文本变多的时候会自动拉长高度
嵌套一个recycleview,这个的点击事件可以先获取此Recycleview对象然后自己处理
.adapter(new RecycleviewAdapter(getData(), MainActivity.this), new LinearLayoutManager(MainActivity.this))
//
RecycleView rc= dialog.getRecyclerView();
这里添加一个更多信息的按钮
.neutralText("更多信息")