Ciao ,ho un problema a far caricare un layout nel panel , ho usato usato questo codice :
B4X:
If vite = 0 Then
Pnlv.Visible = True ' Faccio vedere il Panel
Pnlv.LoadLayout("Home") ' Layout di prova
End If
Il codice funziona perchè se le vite sono 0 si vede il panel solo che non carica il layout , ho cercato nelle guide , nel forum ho fatto qualche test io niente è da 2 ore se non di più che non riesco a farlo funzionare , forse ho interpretato male ciò che fa questa funzione ? Non deve caricare un Layout all'interno del panel ? Grazie
ciao
Dal codice che hai postato non so se ci sono tutte le istruzioni necessarie.
Il panello deve essere inizializzato e deve essere aggiunto all'Activity
B4X:
Dim pnlr As Panel
pnlr.Initialize("pnlr")
Activity.AddView(pnlr, 0dip, 0dip, 320dip, 480dip)
pnlr.LoadLayout("layout1")
'pnlr.SetLayout(0dip, 0dip, 320dip, 480dip)
giusto? Siccome io la grafica la esprimo sempre in % posso scriverla in % invece che in dip ?
E poi pnlr,SetLayout(0dip , 0dip, 320dip, 480dip) lo devo mettere oppure no ? Questo a quanto ho capito dice al layout le dimensioni da avare?
ciao
Certo. in Activity_create insersci init del panel e addview
Le dimensioni e le coordinate le puoi indicare anche con %...
il set layout lo puoi inserire se vuoi ridimensinarlo successivamente o per eventi o altro, altrimenti basta .addview(...)
Il layout, inteso come file del designer, si 'accomoda' dentro il panel, NON viene ridimensionato con il panel. Le viste rimango come sono nel layaout. Cidevi pensare tu. Io cerco sempre di utilizzare lo script designer... molto comodo!
ciao
enrico
Niente , ho questo codice ( ho aggiunto quello che mancava ) :
B4X:
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
Activity.LoadLayout("Home")
Pnlv.Initialize("Pnlv")
Activity.AddView(Pnlv , 0dip , 0dip , 320dip , 480dip)
Pnlv.SetLayout(0dip, 0dip, 320dip, 480dip)
End Sub
E questo in un button che fa visualizzare il Panel :
B4X:
Sub BtnR_Click
Pnlv.Visible = True
Pnlv.LoadLayout("Home")
End Sub
Solo che il panel è bianco .. Perchè , cosa manca adesso ?
ciao
ti invio un esempio con 2 panel.
pnlrV = si carica alla create della activity e si rende invisibile : le viste interne al pannello sono sempre disponibili
pnlrC = si crea al momento del bisogno e si rimuove alla chiusura : le viste interne al pannello sono disponibili solo con il pannello aperto/creato
I colori dei pannelli aperti sono dovuti allo sfondo delle rispettive activity (panel.color... non avrebbe senso quando si carica l'activity dentro!)
Ciao
Enrico
il problema potrebbe essere nel layout 'Home'... ma non so.
Se posti il tuo codice, o parte di esso, vediamo se possiamo aiutarti.
Mi accorgo ora che hai anche usato pnlv.visible prima della sua init... !!!???!!!
Siccome il codice è abbastanza lungo ho fatto una prova con un nuovo progetto e ha funzionato , adesso riprovo sul mio progetto e ti faccio sapere , grazie
haha ho risolto , era colpa di un mio stupido errore , avevo fatto tutto su un button per provare e io cliccavo su un altro che lo rendeva solo visibile ... Grazie tantissimo del tuo aiuto henry , se ti serve qualche immagine dimmelo che li mela cavo molto bene . Ciaoo