The List component recycles the Views that are used to visualise your data items. In other words, when a specific item view goes out of the screen it is detached from its data item and used to visualise another data item that is to be displayed in the viewport of the list. This behaviour is implemented at the core of the component and cannot be stopped.
In such situations the expected approach is to bind all state-related properties in your Item Template to properties on your data item. This will automatically preserve the state of your visual items when they are automatically assigned to a corresponding data item.
I hope this helps.