随着google开始主导Material Design风格的设计,越来越多的app开始使用Material Design风格来设计自己的UI。虽然在Android Studio中集成了多种快速开发框架,但是google始终没有推出自己的MD风格的dialog,为了能够在项目中快速开发MDDialog,我开源了一款自己开发的MDDialog,继承于Dialog,具有高度自由的定制属性。

项目地址:

https://github.com/Carbs0126/MDDialog

先上截图:

添加自定义view:

添加String[]:

主要特点:
1.使用与AlertDialog相同的builder构造方式,不需要改变编程习惯。
2.可以选择“显示/隐藏”顶部标题或者底部按钮。可以选择隐藏两个按钮或者某一个按钮。
3.使用setMessages(String[])方法,可以使用字符串数组为MDDialog添加多个item,同时可以setContentViewClickable设置item是否可点击,以及使用setOnItemClickListener(...)方法为item添加点击响应事件。
4.可以使用setContentView(...)方法为此dialog添加布局,其中传入的参数可以是布局id,也可以是view对象。
5.可以使用builder中的setContentViewOperator(new MDDialog.ContentViewOperator() {
@Override
public void operate(View contentView) {
//EditText et = (EditText) contentView.findViewById(R.id.edit0);
//et.setHint("hint set in operator");
}
})
方法,为添加的contentview添加一系列的操作,其中contentview是添加至MDDialog中的view

6.可以设置MDDialog的四角的半径
7.MDDialog为每个item设置准确的按下效果,包括圆角背景的按下效果。

Author:Carbs.Wang
Email:yeah0126#yeah.net

使用方法:

 创建 MDDialog 的两种方式
1.设置 customize view :
new MDDialog.Builder(ActivityMain.this)
// .setContentView(customizedView)
.setContentView(R.layout.content_dialog)
.setContentViewOperator(new MDDialog.ContentViewOperator() {
@Override
public void operate(View contentView) {
EditText et = (EditText) contentView.findViewById(R.id.edit0);
et.setHint("hint set in operator");
}
})
.setTitle("添加")
.setNegativeButton(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
})
.setPositiveButton(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
})
.setPositiveButtonMultiListener(new MDDialog.OnMultiClickListener() {
@Override
public void onClick(View clickedView, View contentView) {
EditText et = (EditText) contentView.findViewById(R.id.edit0);
Toast.makeText(getApplicationContext(), "edittext 0 : " + et.getText(), Toast.LENGTH_SHORT).show();
}
})
.setNegativeButtonMultiListener(new MDDialog.OnMultiClickListener() {
@Override
public void onClick(View clickedView, View contentView) {
EditText et = (EditText) contentView.findViewById(R.id.edit1);
Toast.makeText(getApplicationContext(), "edittext 1 : " + et.getText(), Toast.LENGTH_SHORT).show();
}
})
.setWidthMaxDp(600)
// .setShowTitle(false)//default is true
// .setShowButtons(true)//default is true
.create()
.show(); 2.设置 String[] messages final String[] messages = new String[]{"两个黄鹂鸣翠柳,一行白鹭上青天。",
"窗含西岭千秋雪,门泊东吴万里船。",
"君不见,黄河之水天上来,奔流到海不复回;君不见,高堂明镜悲白发,朝如青丝暮如雪。"};
new MDDialog.Builder(ActivityMain.this)
.setMessages(messages)
.setTitle("一首古诗")
.setNegativeButton(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
})
.setPositiveButton(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "positive", Toast.LENGTH_SHORT).show();
}
})
.setOnItemClickListener(new MDDialog.OnItemClickListener() {
@Override
public void onItemClicked(int index) {
Toast.makeText(getApplicationContext(), messages[index], Toast.LENGTH_SHORT).show();
}
})
.setWidthMaxDp(600)
.setShowTitle(false)
.setShowButtons(true)
.create()
.show();

引入:

dependencies {
compile 'cn.carbs.android:MDDialog:1.0.0'
}

项目地址:

https://github.com/Carbs0126/MDDialog

最新文章

  1. jQuery MiniUI开发系列之:使用API文档
  2. ACM 奋斗的小蜗牛
  3. 如何解决mysql stop fail的问题
  4. HDU-4614 Vases and Flowers (线段树区间更新)
  5. ASCII码排序
  6. mac terminal终端ls命令参数详解
  7. .NET异步操作学习之一:Async/Await中异常的处理
  8. -_-#【Better JS Code】插入迭代值
  9. oracle 随Linux系统启动自启动设置
  10. PhpStorm 10.0 激活方式
  11. JavaConcurrentHashMap
  12. 读书笔记 effective c++ Item 39 明智而谨慎的使用private继承
  13. Masonry 在swift下的使用
  14. Github从注册到上传本地项目详解!!!
  15. HDU5137 删点 最短路
  16. Java集合-ArrayList源码解析-JDK1.8
  17. 字符串匹配(二)----KMP算法
  18. redis php操作命令
  19. Visual Studio Code 如何将新项目发布到GIT服务器
  20. python语法之正则

热门文章

  1. How to change drive in cygwin
  2. 配置ubuntu 14.04.3 LTS odoo 9.0开发环境
  3. 一步一步搭建客服系统 (2) 如何搭建SimpleWebRTC信令服务器
  4. 困扰多日的C#调用Haskell问题竟然是Windows的一个坑
  5. [WinAPI] API 8 [获取磁盘空间信息]
  6. javascript跨域通信(一):利用location.hash实现跨域iframe自适应
  7. web app 禁用手机浏览器缓存方法
  8. [读书笔记]C#学习笔记六: C#3.0Lambda表达式及Linq解析
  9. django with mysql (part-2)
  10. atitit.编辑表单的实现最佳实践dwr jq easyui