SMM avoids creating new views if it can reuse existing ones. When an image becomes invisible its containing view becomes eligible for reuse.
You need to do three things:
1. Better to create a single SMM object and reuse it. Make the on in B4XMainPage a Public variable and in the other pages:
smm = B4XPages.MainPage.smm
2. Add this to B4XMainPage:
Private Sub B4XPage_Appear
clv_VisibleRangeChanged(clv.FirstVisibleIndex, clv.LastVisibleIndex)
End Sub
3. In the second page, change the "download" sub to B4XPage_Appear. And don't call it from the main page. It will be called automatically.