How to avoid flickering while updating gridview?

前端 未结 9 2194
谎友^
谎友^ 2021-01-05 07:01

I have a gridview. Im displaying images from the array of 10 images. After 1 minute i\'m adding 5 more images. To update the gridview i\'m using the following code.

<
相关标签:
9条回答
  • 2021-01-05 07:59

    You should enable OpenGL and hardware acceleration:

    <application android:hardwareAccelerated="true" ...>
    
    <uses-feature
      android:name="string"
      android:required=["true" | "false"]
      android:glEsVersion="integer" />
    

    You can also using hardware caching on items of your gridview:

    view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    

    Finally, you can overlay your grid view during update and play with transparency.

    0 讨论(0)
  • 2021-01-05 08:01

    Pass ImageViewAware (instead of ImageView) which doesn't consider actual view size: Intead of:

    imageLoader.displayImage(imageUri, imageView);
    

    do following:

    ImageAware imageAware = new ImageViewAware(imageView, false)
    imageLoader.displayImage(imageUri, imageAware);
    
    0 讨论(0)
  • 2021-01-05 08:03

    Simple solution is 1) Have a method in your adapter that will append/reset your new data list into old array list and not to call notifyDataSetChanged() When user will scroll getview will get called and hence list will be updated. It should not flicker.

    e.g. // Have a method in adapter class public void updateList(ArrayList<ABC> list) { /enter code here`/add to old one oldList.addAll(list); }

    thats it `

    0 讨论(0)
提交回复
热议问题