隨着google開始主導Material Design風格的設計,愈來愈多的app開始使用Material Design風格來設計本身的UI。雖然在Android Studio中集成了多種快速開發框架,可是google始終沒有推出本身的MD風格的dialog,爲了可以在項目中快速開發MDDialog,我開源了一款本身開發的MDDialog,繼承於Dialog,具備高度自由的定製屬性。android
項目地址:git
https://github.com/Carbs0126/MDDialoggithub
先上截圖:編程
添加自定義view:數組
添加String[]:app
主要特色:
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設置準確的按下效果,包括圓角背景的按下效果。ide
Author:Carbs.Wang
Email:yeah0126#yeah.net佈局
使用方法:ui
1 建立 MDDialog 的兩種方式 2 1.設置 customize view : 3 new MDDialog.Builder(ActivityMain.this) 4 // .setContentView(customizedView) 5 .setContentView(R.layout.content_dialog) 6 .setContentViewOperator(new MDDialog.ContentViewOperator() { 7 @Override 8 public void operate(View contentView) { 9 EditText et = (EditText) contentView.findViewById(R.id.edit0); 10 et.setHint("hint set in operator"); 11 } 12 }) 13 .setTitle("添加") 14 .setNegativeButton(new View.OnClickListener() { 15 @Override 16 public void onClick(View v) { 17 } 18 }) 19 .setPositiveButton(new View.OnClickListener() { 20 @Override 21 public void onClick(View v) { 22 } 23 }) 24 .setPositiveButtonMultiListener(new MDDialog.OnMultiClickListener() { 25 @Override 26 public void onClick(View clickedView, View contentView) { 27 EditText et = (EditText) contentView.findViewById(R.id.edit0); 28 Toast.makeText(getApplicationContext(), "edittext 0 : " + et.getText(), Toast.LENGTH_SHORT).show(); 29 } 30 }) 31 .setNegativeButtonMultiListener(new MDDialog.OnMultiClickListener() { 32 @Override 33 public void onClick(View clickedView, View contentView) { 34 EditText et = (EditText) contentView.findViewById(R.id.edit1); 35 Toast.makeText(getApplicationContext(), "edittext 1 : " + et.getText(), Toast.LENGTH_SHORT).show(); 36 } 37 }) 38 .setWidthMaxDp(600) 39 // .setShowTitle(false)//default is true 40 // .setShowButtons(true)//default is true 41 .create() 42 .show(); 43 44 2.設置 String[] messages 45 46 final String[] messages = new String[]{"兩個黃鸝鳴翠柳,一行白鷺上青天。", 47 "窗含西嶺千秋雪,門泊東吳萬里船。", 48 "君不見,黃河之水天上來,奔流到海不復回;君不見,高堂明鏡悲白髮,朝如青絲暮如雪。"}; 49 new MDDialog.Builder(ActivityMain.this) 50 .setMessages(messages) 51 .setTitle("一首古詩") 52 .setNegativeButton(new View.OnClickListener() { 53 @Override 54 public void onClick(View v) { 55 } 56 }) 57 .setPositiveButton(new View.OnClickListener() { 58 @Override 59 public void onClick(View v) { 60 Toast.makeText(getApplicationContext(), "positive", Toast.LENGTH_SHORT).show(); 61 } 62 }) 63 .setOnItemClickListener(new MDDialog.OnItemClickListener() { 64 @Override 65 public void onItemClicked(int index) { 66 Toast.makeText(getApplicationContext(), messages[index], Toast.LENGTH_SHORT).show(); 67 } 68 }) 69 .setWidthMaxDp(600) 70 .setShowTitle(false) 71 .setShowButtons(true) 72 .create() 73 .show();
引入:
dependencies { compile 'cn.carbs.android:MDDialog:1.0.0' }
項目地址: