1414
1515/**
1616 * When you want to make your own slider view, you must extends from this class.
17- * BaseSliderView provides some useful methods. Such loadImage, setImage,and so on.
17+ * BaseSliderView provides some useful methods.
1818 * I provide two example: {@link com.daimajia.slider.library.SliderTypes.DefaultSliderView} and
1919 * {@link com.daimajia.slider.library.SliderTypes.TextSliderView}
2020 * if you want to show progressbar, you just need to set a progressbar id as @+id/loading_bar.
@@ -173,12 +173,22 @@ public BaseSliderView setOnSliderClickListener(OnSliderClickListener l){
173173 }
174174
175175 /**
176- * when you want to extends this class, please use this method to load a image to a imageview.
177- * @param targetImageView
176+ * When you want to implement your own slider view, please call this method in the end in `getView()` method
177+ * @param v the whole view
178+ * @param targetImageView where to place image
178179 */
179- protected void loadImage ( ImageView targetImageView ){
180+ protected void bindEventAndShow ( final View v , ImageView targetImageView ){
180181 final BaseSliderView me = this ;
181182
183+ v .setOnClickListener (new View .OnClickListener () {
184+ @ Override
185+ public void onClick (View v ) {
186+ if (mOnSliderClickListener != null ){
187+ mOnSliderClickListener .onSliderClick (me );
188+ }
189+ }
190+ });
191+
182192 mLoadListener .onStart (me );
183193
184194 Picasso p = Picasso .with (mContext );
@@ -220,8 +230,9 @@ protected void loadImage(ImageView targetImageView){
220230 rq .into (targetImageView ,new Callback () {
221231 @ Override
222232 public void onSuccess () {
223- if (progressBar !=null )
224- progressBar .setVisibility (View .INVISIBLE );
233+ if (v .findViewById (R .id .loading_bar ) != null ){
234+ v .findViewById (R .id .loading_bar ).setVisibility (View .INVISIBLE );
235+ }
225236 }
226237
227238 @ Override
@@ -244,24 +255,6 @@ public ScaleType getScaleType(){
244255 return mScaleType ;
245256 }
246257
247- private View progressBar = null ;
248- /**
249- * when you want to extends this class, you must call this method to bind click event to your view.
250- * @param v
251- */
252- protected void bindClickEvent (View v ){
253- final BaseSliderView me = this ;
254- progressBar = v .findViewById (R .id .loading_bar );
255- v .setOnClickListener (new View .OnClickListener () {
256- @ Override
257- public void onClick (View v ) {
258- if (mOnSliderClickListener != null ){
259- mOnSliderClickListener .onSliderClick (me );
260- }
261- }
262- });
263- }
264-
265258 /**
266259 * the extended class have to implement getView(), which is called by the adapter,
267260 * every extended class response to render their own view.
0 commit comments