Italian 2 panel creati runtime all'interno di un panel creato runtime all'interno di una customlistview

gigi0ne

Member
Licensed User
Longtime User
Credo di aver detto tutto nel titolo...
ma non sapevo come abbreviarlo..

Qualcuno mi sa dare una dritta?
Grazie

Buona Pasqua a tutti
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Qualcuno mi sa dare una dritta?
Sì: crea due Panel a runtime all'interno di un Panel creato a runtime e aggiungilo alla CustomListView.

😄

Scherzi a parte e facendoti notare che non sei certo obbligato a creare i due Panel a runtime ma potresti metterli in un layout e caricarli nel "Panel contentitore",
ti basterà usare xui.CreatePanel, no?!

Scrivo al volo, non sarà vero codice eseguibile:

B4X:
CustomListView1.Add(CreateItem, Value)

Private Sub CreateItem As B4XView
    Dim pnlContainer As B4XView
    pnlContainer = xui.CreatePanel("")
    pnlContainer.SetLayoutAnimated(...)

    Dim pnlOne As B4XView
    pnlOne = xui.CreatePanel("")
    pnlOne.SetLayoutAnimated(...)

    Dim pnlTwo As B4XView
    pnlTwo = xui.CreatePanel("")
    pnlTwo.SetLayoutAnimated(...)

    pnlContainer.AddView(pnlOne, ...)
    pnlContainer.AddView(pnlTwo, ...)
    
    Return pnlContainer
End Sub
 

gigi0ne

Member
Licensed User
Longtime User
Grazie della risposta pronta e in italiano.... :D:D:D:D:D

Non e' cosi semplice, in effetti forse ho semplificato troppo la domanda..
il pannello contenitore puo contenere da 1 a x pannelli.
La seconda domanda sorge spontanea, come calcolo la dimensione del pannello
madre?
sommo semplicemente le altezze dei pannelli interni e poi setto il pannello madre
con l'altezza ottenuta?
O c'e' un sistema piu figo?

Intnto che mi rispondete provo..

Grazie a tutti...

PS E come setto l'altezza del SetLayoutAnimated se ancora l'altezza non la so?
 
Last edited:

gigi0ne

Member
Licensed User
Longtime User
Sì: crea due Panel a runtime all'interno di un Panel creato a runtime e aggiungilo alla CustomListView.

😄

Scherzi a parte e facendoti notare che non sei certo obbligato a creare i due Panel a runtime ma potresti metterli in un layout e caricarli nel "Panel contentitore",
ti basterà usare xui.CreatePanel, no?!

Scrivo al volo, non sarà vero codice eseguibile:

B4X:
CustomListView1.Add(CreateItem, Value)

Private Sub CreateItem As B4XView
    Dim pnlContainer As B4XView
    pnlContainer = xui.CreatePanel("")
    pnlContainer.SetLayoutAnimated(...)

    Dim pnlOne As B4XView
    pnlOne = xui.CreatePanel("")
    pnlOne.SetLayoutAnimated(...)

    Dim pnlTwo As B4XView
    pnlTwo = xui.CreatePanel("")
    pnlTwo.SetLayoutAnimated(...)

    pnlContainer.AddView(pnlOne, ...)
    pnlContainer.AddView(pnlTwo, ...)
   
    Return pnlContainer
End Sub

Provato mi ritorna questo

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent

quando provo ad inserire il contenitore madre nella CustomList view..

Cosa potrebbe essere?
Grazie
 

gigi0ne

Member
Licensed User
Longtime User
Trovato.. era cosi semplice...
EREL : "Call Container.RemoveView before you add it to CustomListview."
Grazie..

Buona Pasqua
 
Top