基于DialogFragment实现的Dialog,有以下几点优势:
- 异常情况状态自动保存
- show、dismiss等严格被Fragment生命周期托管,不会出现内存泄露
- 支持自定义,扩展性高
Show
AlertDialog:
ProgressDialog:
SuccessDialog:
ErrorDialog:
BottomDialog:
public void showAlertDialog() {
AlertDialog.with(MainActivity.this)
.setCancelable(true)
.setContent("Android Alert DialogFragment Content")
.setTitle("AlertDialog Title")
.setPositiveButton("success", new View.OnClickListener() {
@Override
public void onClick(View view) {
showSuccessDialog();
}
}).setNegativeButton("error", new View.OnClickListener() {
@Override
public void onClick(View view) {
showErrorDialog();
}
}).show();
}
public void showErrorDialog() {
StatusDialog.with(MainActivity.this)
.setCancelable(false)
.setPrompt("load error")
.setType(StatusDialog.Type.ERROR)
.show();
}
public void showSuccessDialog() {
StatusDialog.with(MainActivity.this)
.setCancelable(false)
.setPrompt("load success")
.setType(StatusDialog.Type.SUCCESS)
.show();
}
public void showProgressDialog() {
StatusDialog.with(MainActivity.this)
.setCancelable(false)
.setPrompt("loading…")
.setType(StatusDialog.Type.PROGRESS)
.show();
}
public void showItemDialog() {
List<ItemBean> itemBeanList = Utils.getItemBeanList();
ItemDialog.with(MainActivity.this)
.setCancelable(true)
.setData(itemBeanList)
.setOnItemClickListener(new ItemDialog.OnItemClickListener() {
@Override
public void onItemClick(int position, ItemBean itemData) {
showSuccessDialog();
}
})
.setSpanCount(itemBeanList.size())
.setAnimations(R.style.Dialog_Anim_Bottom_In_Bottom_Out)
.setGravity(Gravity.BOTTOM)
.setShowType(ItemDialog.ShowType.GRID)
.show();
}
It feels good,Please Star,Thank you!