' ============================================
' Module: CustomListViewCD (B4XMainPage compatibile)
' Created by: ALEX – MIASMART B4X BUILDER
' Technical support: MIASMART – B4X BUILDER v1
' Date: 2025-05-26
' Purpose: Custom ListView in B4XMainPage con immagine + testo + campo note
' ============================================
Sub Class_Globals
Dim fx As JFX
Private Root As B4XView
Private xui As XUI
Private sv As ScrollPane
Private container As Pane
End Sub
Public Sub Initialize
End Sub
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
sv.Initialize("sv")
Root.AddView(sv, 0, 0, 600dip, 600dip)
container.Initialize("")
container.SetLayoutAnimated(0, 0, 0, 600dip, 95dip * 10 + 10dip)
Dim jo As JavaObject = sv
jo.RunMethod("setContent", Array(container))
For i = 1 To 10
AddCDRow("CD Titolo " & i, "Artista " & i, "io.png")
Next
End Sub
Private Sub AddCDRow(titolo As String, sottotitolo As String, imgFile As String)
Dim riga As Pane
riga.Initialize("")
riga.SetLayoutAnimated(0, 0, 0, 580dip, 90dip)
Dim joRiga As JavaObject = riga
joRiga.RunMethod("setStyle", Array("-fx-background-color: white;"))
Dim img As ImageView
img.Initialize("")
Dim bmp As B4XBitmap = xui.LoadBitmap(File.DirAssets, imgFile)
img.SetImage(bmp)
riga.AddNode(img, 10dip, 15dip, 60dip, 60dip)
Dim lblTitolo As Label
lblTitolo.Initialize("")
lblTitolo.Text = titolo
lblTitolo.TextSize = 16
riga.AddNode(lblTitolo, 80dip, 10dip, 300dip, 25dip)
Dim lblSotto As Label
lblSotto.Initialize("")
lblSotto.Text = sottotitolo
lblSotto.TextSize = 12
lblSotto.TextColor = fx.Colors.Gray
riga.AddNode(lblSotto, 80dip, 35dip, 300dip, 20dip)
Dim txtNote As TextField
txtNote.Initialize("")
txtNote.PromptText = "Note..."
riga.AddNode(txtNote, 80dip, 60dip, 300dip, 20dip)
container.AddNode(riga, 10dip, container.NumberOfNodes * 95dip, 580dip, 90dip)
End Sub