美文网首页
提升ListView的运行效率

提升ListView的运行效率

作者: W_Nicotine | 来源:发表于2017-07-11 22:19 被阅读0次
    public View getView(int position, View converView, ViewGroup parent){
        Fruit fruit = getItem(position);
        View view = LayoutInflater.from(getContext()).inflate(resourceId,parent,false);
        ImageView fruitImage = (ImageView) view.findViewById(R.id.furit_image);
        TextView fruitName = (TextView) view.findViewById(R.id.furit_name);
        fruitImage.setImageResource(fruit.getImageId());
        fruitName.setText(fruit.getName());
        return view;
    }
    

    1 . 以上的ListView的运行效率很低,因为在FruitAdapter的getView()方法中,每次都将布局重新加载一遍,当ListView快速滚动的时候,这就会成为性能的饿瓶颈。

     public View getView(int position, View converView, ViewGroup parent){
         Fruit fruit = getItem(position);
         View view;
         if (converView ==null){
             view = LayoutInflater.from(getContext()).inflate(resourceId,parent,false);
         } else {
             view = converView;
         }
         ImageView fruitImage = (ImageView) view.findViewById(R.id.furit_image);
         TextView fruitName = (TextView) view.findViewById(R.id.furit_name);
         fruitImage.setImageResource(fruit.getImageId());
         fruitName.setText(fruit.getName());
         return view;
     }```
    2 .  如果改为上述,现在我们可以在getView()方法中进行判断,如果cnvertView为null,则使用LayoutInfater去加载布局,如果不为null则直接对converView进行崇从用。这样就大大提高了ListView的运行效率,在快速滚动的时候也可以表现出更好的性能。
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

    相关文章

      网友评论

          本文标题:提升ListView的运行效率

          本文链接:https://www.haomeiwen.com/subject/znxvhxtx.html