1
+ /**
2
+ * Created by 赵晨璞 on 2016/5/1.
3
+ */
4
+ public class SnackbarUtil {
5
+
6
+ public static final int Info = 1 ;
7
+ public static final int Confirm = 2 ;
8
+ public static final int Warning = 3 ;
9
+ public static final int Alert = 4 ;
10
+
11
+
12
+ public static int red = 0xfff44336 ;
13
+ public static int green = 0xff4caf50 ;
14
+ public static int blue = 0xff2195f3 ;
15
+ public static int orange = 0xffffc107 ;
16
+
17
+ //SnackbarUtil.ShortSnackbar(coordinator,"妹子向你发来一条消息",SnackbarUtil.Info).show();
18
+ /**
19
+ * 短显示Snackbar,自定义颜色
20
+ * @param view
21
+ * @param message
22
+ * @param messageColor
23
+ * @param backgroundColor
24
+ * @return
25
+ */
26
+ public static Snackbar ShortSnackbar (View view , String message , int messageColor , int backgroundColor ){
27
+ Snackbar snackbar = Snackbar .make (view ,message , Snackbar .LENGTH_SHORT );
28
+ setSnackbarColor (snackbar ,messageColor ,backgroundColor );
29
+ return snackbar ;
30
+ }
31
+
32
+ /**
33
+ * 长显示Snackbar,自定义颜色
34
+ * @param view
35
+ * @param message
36
+ * @param messageColor
37
+ * @param backgroundColor
38
+ * @return
39
+ */
40
+ public static Snackbar LongSnackbar (View view , String message , int messageColor , int backgroundColor ){
41
+ Snackbar snackbar = Snackbar .make (view ,message , Snackbar .LENGTH_LONG );
42
+ setSnackbarColor (snackbar ,messageColor ,backgroundColor );
43
+ return snackbar ;
44
+ }
45
+
46
+ /**
47
+ * 自定义时常显示Snackbar,自定义颜色
48
+ * @param view
49
+ * @param message
50
+ * @param messageColor
51
+ * @param backgroundColor
52
+ * @return
53
+ */
54
+ public static Snackbar IndefiniteSnackbar (View view , String message ,int duration ,int messageColor , int backgroundColor ){
55
+ Snackbar snackbar = Snackbar .make (view ,message , Snackbar .LENGTH_INDEFINITE ).setDuration (duration );
56
+ setSnackbarColor (snackbar ,messageColor ,backgroundColor );
57
+ return snackbar ;
58
+ }
59
+
60
+ /**
61
+ * 短显示Snackbar,可选预设类型
62
+ * @param view
63
+ * @param message
64
+ * @param type
65
+ * @return
66
+ */
67
+ public static Snackbar ShortSnackbar (View view , String message , int type ){
68
+ Snackbar snackbar = Snackbar .make (view ,message , Snackbar .LENGTH_SHORT );
69
+ switchType (snackbar ,type );
70
+ return snackbar ;
71
+ }
72
+
73
+ /**
74
+ * 长显示Snackbar,可选预设类型
75
+ * @param view
76
+ * @param message
77
+ * @param type
78
+ * @return
79
+ */
80
+ public static Snackbar LongSnackbar (View view , String message ,int type ){
81
+ Snackbar snackbar = Snackbar .make (view ,message , Snackbar .LENGTH_LONG );
82
+ switchType (snackbar ,type );
83
+ return snackbar ;
84
+ }
85
+
86
+ /**
87
+ * 自定义时常显示Snackbar,可选预设类型
88
+ * @param view
89
+ * @param message
90
+ * @param type
91
+ * @return
92
+ */
93
+ public static Snackbar IndefiniteSnackbar (View view , String message ,int duration ,int type ){
94
+ Snackbar snackbar = Snackbar .make (view ,message , Snackbar .LENGTH_INDEFINITE ).setDuration (duration );
95
+ switchType (snackbar ,type );
96
+ return snackbar ;
97
+ }
98
+
99
+ //选择预设类型
100
+ private static void switchType (Snackbar snackbar ,int type ){
101
+ switch (type ){
102
+ case Info :
103
+ setSnackbarColor (snackbar ,blue );
104
+ break ;
105
+ case Confirm :
106
+ setSnackbarColor (snackbar ,green );
107
+ break ;
108
+ case Warning :
109
+ setSnackbarColor (snackbar ,orange );
110
+ break ;
111
+ case Alert :
112
+ setSnackbarColor (snackbar ,Color .YELLOW ,red );
113
+ break ;
114
+ }
115
+ }
116
+
117
+ /**
118
+ * 设置Snackbar背景颜色
119
+ * @param snackbar
120
+ * @param backgroundColor
121
+ */
122
+ public static void setSnackbarColor (Snackbar snackbar , int backgroundColor ) {
123
+ View view = snackbar .getView ();
124
+ if (view !=null ){
125
+ view .setBackgroundColor (backgroundColor );
126
+ }
127
+ }
128
+
129
+ /**
130
+ * 设置Snackbar文字和背景颜色
131
+ * @param snackbar
132
+ * @param messageColor
133
+ * @param backgroundColor
134
+ */
135
+ public static void setSnackbarColor (Snackbar snackbar , int messageColor , int backgroundColor ) {
136
+ View view = snackbar .getView ();
137
+ if (view !=null ){
138
+ view .setBackgroundColor (backgroundColor );
139
+ ((TextView ) view .findViewById (R .id .snackbar_text )).setTextColor (messageColor );
140
+ }
141
+ }
142
+
143
+ /**
144
+ * 向Snackbar中添加view
145
+ * @param snackbar
146
+ * @param layoutId
147
+ * @param index 新加布局在Snackbar中的位置
148
+ */
149
+ public static void SnackbarAddView ( Snackbar snackbar ,int layoutId ,int index ) {
150
+ View snackbarview = snackbar .getView ();
151
+ Snackbar .SnackbarLayout snackbarLayout =(Snackbar .SnackbarLayout )snackbarview ;
152
+
153
+ View add_view = LayoutInflater .from (snackbarview .getContext ()).inflate (layoutId ,null );
154
+
155
+ LinearLayout .LayoutParams p = new LinearLayout .LayoutParams ( LinearLayout .LayoutParams .WRAP_CONTENT ,LinearLayout .LayoutParams .WRAP_CONTENT );
156
+ p .gravity = Gravity .CENTER_VERTICAL ;
157
+
158
+ snackbarLayout .addView (add_view ,index ,p );
159
+ }
160
+
161
+ }
0 commit comments