MaterialDialog 仿Android 5.0原生的AlertDialog样式的对话框
来源:互联网 发布:为什么淘宝退款打不开 编辑:程序博客网 时间:2024/05/01 23:25
MaterialDialog
仿Android原生的AlertDialog样式的对话框,目的在于解决原生的在Android 5.0以下手机样式丑陋问题。
初次开源项目,如有不足之处,请各位大神多多海涵,多多指导指导
效果图
Gradle引用方法
dependencies { compile 'com.android.design:MaterialDialog:1.0.2'}
1.显示一个确认对话框
new MaterialDialog.Builder(this) .setTitle("提示") .setMessage("仿原生AlertDialog样式的对话框,目的在于解决原生的在Android 5.0下样式丑陋问题") .setPositiveButton(null) .setNeutralButton("不再提示", null) .setNegativeButton(null).show();
2.显示一个列表对话框
final String[] items = {"2016/01", "2016/02", "2016/03", "2016/04", "2016/05", "2016/06", "2016/07"}; new MaterialDialog.Builder(this) .setItems(items, new MaterialDialog.OnClickListener() { @Override public boolean onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, items[which], Toast.LENGTH_SHORT).show(); return false; } }).create().show();
3.显示一个单选对话框
final String[] item2 = {"2016/01", "2016/02", "2016/03", "2016/04", "2016/05", "2016/06", "2016/07"}; new MaterialDialog.Builder(this) .setTitle("单选框") .setSingleChoiceItems(item2, 2, new MaterialDialog.OnClickListener() { @Override public boolean onClick(DialogInterface dialog, int which) { Toast.makeText(MainActivity.this, item2[which], Toast.LENGTH_SHORT).show(); return true; } }).setPositiveButton("确定", null) .setNegativeButton("取消", null) .setNeutralButton("不在提示", null).show();
4.显示一个多选对话框
final String[] item1 = {"2016/01", "2016/02", "2016/03", "2016/04", "2016/05", "2016/06", "2016/07"}; new MaterialDialog.Builder(this) .setTitle("多选框") .setMultiChoiceItems(item1, new boolean[]{false, true, false, true}, new MaterialDialog.OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { Toast.makeText(MainActivity.this, which + "--" + isChecked, Toast.LENGTH_SHORT).show(); } }).setPositiveButton("确定", null) .setNegativeButton("取消", null) .setNeutralButton("不在提示", null).show();
5.自定义对话框显示的view
new MaterialDialog.Builder(this).setTitle("自定义View") .setContentView(view) .setLayout(0.8f,0.8f) .show();
6.特殊方法介绍
setLayout(float widthPercent, float heightPercent) 通过百分比传一个0~1之间的浮点数设置Dialog的宽高,例如:setLayout(0.8f,0.9f)表示宽为屏幕宽的80%,高为屏幕高90%setLayout(int width, int height)同样设置Dialog的宽高,却别是传入准确的像素值,单位:px 例如setLayout(500,600)表示宽500个像素,高600个像素同样可以调用setWidth和setHeight单独设置宽高,同样支持百分比和像素值setAdapter(ListAdapter adapter, OnClickListener listener)当需要自定义ListView的item时,调用此方法传了一个自己实现的Adapter即可,如还需要监听item的单击事件,传一个OnClickListener即可。setSingleChoiceItems(List<? extends CharSequence> items, int checkItem, OnClickListener listener)设置单选框列表时,有一系列重载方法,最终都是调用此方法items:表示单选列表的集合checkItem:表示默认选中item的位置listener:单机item时的监听器setSCResultButton(OnSCResultListener listener)如果不想监听单选对话框单击item的动作,只想获取单选框最后的选择结果,调用此方法传入一个最后结果的监听器,监听方法中会有最终的选择结果setMultiChoiceItems(List<? extends CharSequence> items, int[] checkedItems, OnMultiChoiceClickListener listener)设置复选框列表时,也有一系列重载方法,最终都是调用此方法items:表示复选列表的集合checkedItems:默认选择item的位置的集合listener:单机item时的监听器setMCResultButton(OnMCResultListener listener)如果不想监听复选对话框单击item的动作,只想获取复选框最后的选择结果,调用此方法传入一个最后结果的监听器,监听方法中会返回选择的列表集合
源码:https://github.com/liujingxing/MaterialDialogApplication
部分灵感来源:https://github.com/drakeet/MaterialDialog
单选/复选框引用:https://github.com/andyxialm/SmoothCheckBox 并加入了自己的修改
0 0
- MaterialDialog 仿Android 5.0原生的AlertDialog样式的对话框
- MaterialDialog 仿Android 5.0原生的AlertDialog样式的对话框
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- Android详细的对话框AlertDialog.Builder使用方法和自定义样式
- 自定义 Android 对话框 (AlertDialog) 的样式(转载)
- AlertDialog对话框的几种样式
- 自定义 Android 对话框 (AlertDialog) 的样式 (Android中自定义对话框(Dialog) <二>)
- Windows 下R软件如何安装GO.db程序包
- python学习——struct
- RunningMan【第六届福建省大学生程序设计竞赛-重现赛】
- Java变量、数据类型。
- KMP算法
- MaterialDialog 仿Android 5.0原生的AlertDialog样式的对话框
- 宝剑锋从磨砺出
- 用Java继承来解决反射难以获取到的实例的思想
- Spring IOC 自定义事件
- 实现请求url或者restful webservice的方式
- AndroidStudio下SVN的解除
- python编辑器
- 12款经典图片轮播jquery插件
- Android开发——程序锁的实现(可用于开发钓鱼登录界面)