Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Root.LoadLayout("MainPage")
Dim su As StringUtils
Sites.Initialize
For Each row() As String In su.LoadCSV(File.DirAssets, "topsites.txt", ",")
Sites.Add(row(1))
Next
smm.Initialize
smm.AddLocalMedia(smm.KEY_DEFAULT_LOADING, File.ReadBytes(File.DirAssets, "loading.gif"), "image/gif")
For Each s As String In Sites
Dim base As B4XView = xui.CreatePanel("")
base.SetLayoutAnimated(0, 0, 0, Root.Width, 300dip)
base.Color = xui.Color_White
CustomListView1.Add(base, s)
Next
End Sub
Private Sub CustomListView1_VisibleRangeChanged (FirstIndex As Int, LastIndex As Int)
For i = 0 To CustomListView1.Size - 1
Dim IsVisible As Boolean = i >= FirstIndex - 2 And i <= LastIndex + 2
Dim base As B4XView = CustomListView1.GetPanel(i)
If IsVisible Then
If base.NumberOfViews = 0 Then
base.LoadLayout("Item")
Dim site As String = CustomListView1.GetValue(i)
smm.SetMedia(base.GetView(0), $"https://www.${site}/favicon.ico"$)
smm.SetMedia(base.GetView(2), $"https://${site}"$)
base.GetView(1).Text = site
End If
Else
If base.NumberOfViews > 0 Then
smm.ClearMedia(base.GetView(2)) 'immediately stop WebView.
End If
base.RemoveAllViews
End If
Next
End Sub