美文网首页
提升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