CommonViewHolder.java
3.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
package com.prws.common.adapter;
import android.content.Context;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.prws.common.utils.GlideHelper;
import java.io.File;
/**
* @author zhiqun.tang
* @Description: CommonViewHolder
* @date 2022/8/10
*/
public class CommonViewHolder extends RecyclerView.ViewHolder {
//子View的集合
private SparseArray<View> mViews;
private View mContentView;
public CommonViewHolder(View itemView) {
super(itemView);
mViews = new SparseArray<>();
mContentView = itemView;
}
/**
* 获取CommonViewHolder实体
*
* @param parent
* @param layoutId
* @return
*/
public static CommonViewHolder getViewHolder(ViewGroup parent, int layoutId) {
return new CommonViewHolder(LayoutInflater.from(parent.getContext()).inflate(layoutId, parent, false));
}
/**
* 提供给外部访问View的方法
*
* @param viewId
* @param <T>
* @return
*/
public <T extends View> T getView(int viewId) {
View view = mViews.get(viewId);
if (view == null) {
view = mContentView.findViewById(viewId);
mViews.put(viewId, view);
}
return (T) view;
}
/**
* @Author Zhiqun
* @Time 2022/3/28
* @Description
**/
public CommonViewHolder setText(int viewId, String text) {
TextView tv = getView(viewId);
tv.setText(text);
return this;
}
/**
* 设置图片链接
*
* @param mContext
* @param viewId
* @param url
* @return
*/
public CommonViewHolder setImageUrl(Context mContext, int viewId, String url) {
ImageView iv = getView(viewId);
GlideHelper.loadUrl(mContext, url, iv);
return this;
}
/**
* 压缩
*
* @param mContext
* @param viewId
* @param url
* @param w
* @param h
* @return
*/
public CommonViewHolder setImageUrl(Context mContext, int viewId, String url, int w, int h) {
ImageView iv = getView(viewId);
GlideHelper.loadSmollUrl(mContext, url, w, h, iv);
return this;
}
/**
* 设置图片文件
*
* @param mContext
* @param viewId
* @param file
* @return
*/
public CommonViewHolder setImageFile(Context mContext, int viewId, File file) {
ImageView iv = getView(viewId);
GlideHelper.loadFile(mContext, file, iv);
return this;
}
/**
* 设置图片
*
* @param viewId
* @param resId
* @return
*/
public CommonViewHolder setImageResource(int viewId, int resId) {
ImageView iv = getView(viewId);
iv.setImageResource(resId);
return this;
}
/**
* 设置背景颜色
*
* @param viewId
* @param color
* @return
*/
public CommonViewHolder setBackgroundColor(int viewId, int color) {
ImageView iv = getView(viewId);
iv.setBackgroundColor(color);
return this;
}
/**
* 设置文本颜色
*
* @param viewId
* @param color
* @return
*/
public CommonViewHolder setTextColor(int viewId, int color) {
TextView tv = getView(viewId);
tv.setTextColor(color);
return this;
}
/**
* 设置控件的显示隐藏
*
* @param viewId
* @param visibility
* @return
*/
public CommonViewHolder setVisibility(int viewId, int visibility) {
TextView tv = getView(viewId);
tv.setVisibility(visibility);
return this;
}
}