[オリジナル]カスタムview之:Material DesignスタイルのdialogのオープンソースプロジェクトMDDialogを迅速に開発

12391 ワード

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.「表示/非表示」の上部タイトルまたは下部ボタンを選択できます.2つのボタンまたは1つのボタンを非表示にすることができます.3.setMessages(String[])メソッドを使用すると、文字列配列を使用してMDDialogに複数のitemを追加できます.また、setContentViewClickableでitemがクリック可能かどうかを設定し、setOnItemClickListener(...)を使用します.メソッドはitemにクリック応答イベントを追加します.4.setContentView(…)を使用可能メソッドはこのdialogにレイアウトを追加し、入力されたパラメータはレイアウトidであってもよいし、viewオブジェクトであってもよい.5.builderのsetContentViewOperator(new MDDialog.contentView Operator(){@Override public void operate(View contentView){//EditTextet=(EditText)contentView.findViewById(R.id.edit 0);//et.set Hint("hint set in operator")})を使用できます.方法:追加したcontentviewに一連の操作を追加します.contentviewはMDDialogに追加したviewです.
6.MDDialogの四角の半径7を設定することができる.MDDialogは、フィレットバックグラウンドの押下効果を含むitemごとに正確な押下効果を設定します.
Author:Carbs.WangEmail:yeah0126#yeah.net
 
使用方法:
 
 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'
  }

 
プロジェクトのアドレス:
https://github.com/Carbs0126/MDDialog