baseadapter

 最近做一个图片浏览器,用BaseAdapter用到想和它分手(其实还好啦,挺好用的,好扩展!),核心应该是getView方法的重写吧,主要有几点收获吧,在这里说说~说说~:

    [代码]java代码:

01 @Override
02     public View getView(int position, View convertView, ViewGroup parent)
03     {
04         ImageView imageView;
05         Bitmap bitmap = getItem(position);
06  
07         if (convertView == null)
08         {
09             imageView = new ImageView(getContext());
10         }
11         else
12         {
13             imageView = (ImageView) convertView;
14         }
15  
16         imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
17         imageView.setImageBitmap(bitmap);
18         return imageView;
19     }

  1、when getView 被调用:              

                ①初始化时,肯定会调用的,不然啥都看不见。

                ②子控件从消失到重新出现,调用~~

                ③调用notifyDataSetChanged()后,会调用~~

                ④欢迎补充……

    2、getView 方法中 convertView的脾气:

                ①缓存,不错!可以节省资源(上面的代码有给出)

                ②缓存,shit!!!一定要搞清楚这个是哪个子控件留下的缓存,从实践的坎坷过程来看,应该是最后一个消失的子控件的,不过不是很确定,但是肯定不是原来这个控件的缓存,如果是的话就不用加 imageView.setImageBitmap(bitmap) 这一句了。也许大家不会因为这个问题而出现什么狗血的事~可是,当你的View是一个自定义的且较为复杂的控件时,就一定要做好恢复工作了~比如重新设置它的图片(这个简单,关键时注意复杂的),我被这个坑了两天……
        
      写完,突然觉得问题有点傻……可能也就只有我被坑过吧
原文地址:https://www.cnblogs.com/appzhang/p/2673075.html