Italian [Risolto] [B4A] Visualizzazione diversa della CLV

Aldo's

Active Member
Licensed User
Buongiorno a tutti.
Con questo codice:
B4X:
    Dim p As B4XView = xui.CreatePanel("")
    p.SetLayoutAnimated(0,0,0,100%x-20dip,100dip)
    p.LoadLayout("ItemCLV1")
    lblNome.As(Label).Text="Maggiore"
    lblD1.As(Label).Text="1^:"
    lblD2.As(Label).Text="3^ magg.:"
    lblD3.As(Label).Text="5^ giusta:"
    bI2=bInd+4
    If bI2 > 11 Then
        bI2=bI2-12
    End If
    bI3=bInd+7
    If bI3 > 11 Then
        bI3=bI3-12
    End If
    lbl1.As(Label).Text=asNote(bInd)
    lbl2.As(Label).Text=asNote(bI2)
    lbl3.As(Label).Text=asNote(bI3)
    sImg = "Acc" & NormalizzaNote(asNote(bInd)) & "M.png"
    imgNota.As(ImageView).Bitmap = LoadBitmap(File.DirAssets,sImg)
    clv1.Add(p,"")
ottengo come risultato sul telefono questo:
Telefono 1.jpg

che va benissimo.
Però sul tablet ottengo questo:
Screenshot_20240126-110453.jpg


Invece cambiando il codice in questo modo:
B4X:
    Dim p As B4XView = xui.CreatePanel("")
    p.SetLayoutAnimated(0,0,0,100%x-20dip,120dip)
    p.LoadLayout("ItemCLV1")
    lblNome.As(Label).Text="Maggiore"
    lblD1.As(Label).Text="1^:"
    lblD2.As(Label).Text="3^ magg.:"
    lblD3.As(Label).Text="5^ giusta:"
    bI2=bInd+4
    If bI2 > 11 Then
        bI2=bI2-12
    End If
    bI3=bInd+7
    If bI3 > 11 Then
        bI3=bI3-12
    End If
    lbl1.As(Label).Text=asNote(bInd)
    lbl2.As(Label).Text=asNote(bI2)
    lbl3.As(Label).Text=asNote(bI3)
    sImg = "Acc" & NormalizzaNote(asNote(bInd)) & "M.png"
    imgNota.As(ImageView).Bitmap = LoadBitmap(File.DirAssets,sImg)
    clv1.Add(p,"")
Sul telefono ottengo questo:
Telefono 2.jpg

e sul tablet questo:
Screenshot_20240126-104907.jpg

Come vedete la gestione degli spazi sotto è giusto, il layout ItemCLV1 contiene elementi che sono di 90dip fissi...non capisco.
Qual'è l'errore?
Grazie
 

Aldo's

Active Member
Licensed User
Nel Designer, togli l'AutoScaleAll. Poi, se il layout dell'item è alto 90dip, nel codice crea il panel alto altrettanto.
Funziona, da una parte e dall'altra.
 
Top