ListView: Prevent a view from recycling

后端 未结 3 1208
予麋鹿
予麋鹿 2021-02-10 05:26

I have a ListView wich use recycled views. I\'m trying to prevent a view from recycle. So I use setHasTransientState:

android.support.v4.view.ViewCompatJB

相关标签:
3条回答
  • 2021-02-10 05:58

    Besides the animation problem Daniel talked about, another issue where knowing when your view is recycled has to do with memory management. If you are putting large, memory intensive bitmaps in your list items, it may be possible that you don't want your view recycled if its not likely to be re-used by other items. This hook gives you a chance to clear the bitmap you may have assigned to an ImageView. Hopefully, this is a rare problem.

    0 讨论(0)
  • 2021-02-10 05:59

    For pre Jellybean, I think you can just use setRecyclerListener on ListView and when RecyclerListener#onMovedToScrapHeap(View view) is called, clear the animation on the view who has been recycled and directly do the final job which was supposed to be done when animation ends.

    The code inside onMovedToScrapHeap(View view) depends on how you implement the animation, e.g. you can call View#clearAnimation() if you previously used View#startAnimation to start animation.

    0 讨论(0)
  • 2021-02-10 06:10

    Use android.support.v4.view.ViewCompat.setHasTransientState(View view, boolean hasTransientState) instead of android.support.v4.view.ViewCompatJB.setHasTransientState(View view, boolean hasTransientState)

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