Italian Problema con un Panel

PakoT52

Active Member
Licensed User
Longtime User
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
 

henry1311

Member
Licensed User
Longtime User
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)
ciao
Enrico
 

PakoT52

Active Member
Licensed User
Longtime User
Quindi su Activity_Create inserisco:
B4X:
Pnlv.Initialize("Pnlv")
Activity.AddView(Pnlv , 0 dip , 0 dip , 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?
 

henry1311

Member
Licensed User
Longtime User
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
 

PakoT52

Active Member
Licensed User
Longtime User
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 ?
 

henry1311

Member
Licensed User
Longtime User
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
 

Attachments

  • ppanel.zip
    9.8 KB · Views: 183

PakoT52

Active Member
Licensed User
Longtime User
Grazie henry , il tuo esempio è molto chiaro solo che pur copiando il tuo codice mi rimane bianco il panel , perchè ho messo questo codice :
B4X:
Sub BtnR_Click
    Pnlv.Visible = True
    Pnlv.Initialize("")
        Activity.AddView(Pnlv , 0,0,100%x ,100%y)
    Pnlv.LoadLayout("Home")
End Sub
Cliccando quel bottone si deve vede il pannello con all'interno il layout Home , dove dentro a un timer dei button e 1 imageview , ma si vede bianco
 

henry1311

Member
Licensed User
Longtime User
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... !!!???!!!
 

PakoT52

Active Member
Licensed User
Longtime User
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 :)
 

PakoT52

Active Member
Licensed User
Longtime User
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 :)
 

PakoT52

Active Member
Licensed User
Longtime User
Scusami , mi sono dimenticato di chiederti , ma Activity.AddView le dimensioni a cosa si riferiscono (pnlv , 0, 0, 100%x, 100%y) queste insomma
 

henry1311

Member
Licensed User
Longtime User
sono le coordinate relative alla View che stai aggiungendo, in questo caso il pnlv.
La percentuale o i dip si riferiscono 'rispetto alla Activity'.
 
Top