Italian Dialogo panelli modal ?

coslad

Well-Known Member
Licensed User
Longtime User
Dialog panel modal ?

Salve a tutti

Nell applicazione che sto scrivendo ho bisogno che compaia un pannello in sovra impressione con il progressivo di un download, non trovo il modo però per rendere il pannello modale , cosi far diventare più grigio lo sfondo.
Probabilmente sarà una sciocchezza, ringrazio in anticipo.
Grazie

Inviato dal mio H9500 con Tapatalk 2
 
Last edited:

arenaluigi

Well-Known Member
Licensed User
Longtime User
Ciao,
potresti utilizzare un oggetto progress bar,
che la rendi visibile quando parte il download.
Questo potrebbe essere un classico utilizzo:

B4X:
Sub Process_Globals
 Private ProgressBarAttiva As Boolean
End Sub
Sub Globals
End Sub
Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("test")
   ProgressBarAttiva=True
   If ProgressBarAttiva Then
        MostraProgressBar
        else
               NascondiProgress
    End If
End Sub

Sub MostraProgressBar
 ProgressBarAttiva = True
 ProgressDialogShow2("Attendere...", False)
End Sub

Sub NascondiProgress
 ProgressDialogHide
 ProgressBarAttiva = False
End Sub

In base a come setti la variabile ProgressBarAttiva la progress bar viene visualizzata o nascosta.
 

coslad

Well-Known Member
Licensed User
Longtime User
Ho gia' provato con i pannelli , ne' ho creati due ambedue figli diretti di activity ,per semplicita' pannello_main dove sono contenuti tutti i view della pagina , e pannello_dialog che e' quello che compare. Al giusto momento setto :
pannello_main.enabled=false
pannello_dialog.visible=true

solo che anche se il pannello_main.enabled=false si possono premere i pulsanti contenuti, io vorrei che alla comparsa del pannello_dialog tutto il contenuto del pannello_main fosse disabilitato.

Ciao
 

coslad

Well-Known Member
Licensed User
Longtime User
Grazie Timo

Infatti è proprio quello che succede a me.
Provero' ad usare la "dialogs library" di agraham .
Vi faro' sapere .

ciao
 

Dominex

Active Member
Licensed User
Longtime User
Avevo fatto questo esempio per un altro utente, ma credo vada bene anche per te. Nell'esempio quel che conta e che una volta mostrato il popup tutto il resto non può più essere premuto.

B4X:
Sub Globals
   Dim ListView1 As ListView
   Dim pnlOpzioni As Panel
   Dim Socio As String
End Sub

Sub Activity_Create(FirstTime As Boolean)
   Activity.Color = Colors.Gray
   ListView1.Initialize("ListView1")
   ListView1.ScrollingBackgroundColor = Colors.Transparent
   ListView1.SingleLineLayout.ItemHeight = 50dip
   ListView1.SingleLineLayout.Label.TextSize = 20
   ListView1.SingleLineLayout.Label.TextColor = Colors.Blue
   ListView1.SingleLineLayout.Label.Gravity = Gravity.CENTER
   ListView1.FastScrollEnabled = True
   For i = 1 To 50
      ListView1.AddSingleLine("Socio #" & i)
   Next
   Activity.AddView(ListView1, 0, 0, 100%x, 100%y)
End Sub

Sub ListView1_ItemLongClick (Position As Int, Value As Object)
   pnlOpzioni.Initialize("pnlOpzioni")
   Activity.AddView(pnlOpzioni,0,0,100%x,100%y)
   Dim pnlTemp As Panel
   pnlTemp.Initialize("")
   pnlTemp.Color = Colors.Black
   pnlOpzioni.AddView(pnlTemp,25%x,50%y-75dip,50%x,150dip)
   Dim btnOpzioni(3) As Button
   For c = 0 To btnOpzioni.Length-1
      btnOpzioni(c).Initialize("Opzioni")
      btnOpzioni(c).Tag = c
      pnlTemp.AddView(btnOpzioni(c),0,c*(pnlTemp.Height/3)+2dip,pnlTemp.Width,pnlTemp.Height/3)
   Next
   btnOpzioni(0).Text = "Modifica"
   btnOpzioni(1).Text = "Iscrivi"
   btnOpzioni(2).Text = "Bocca/Sblocca"
   Socio = Value
End Sub

Sub Opzioni_Click
   Dim Send As Button
   Send = Sender
   ToastMessageShow("Hai premuto <"&Send.Text&"> sul Socio "&Socio,False)
   pnlOpzioni.RemoveView
End Sub

Sub pnlOpzioni_Click
'Questo evento serve solo ad evitare pressioni della ListView mentre il popup è aperto.
End Sub

Sub ListView1_ItemClick (Position As Int, Value As Object)
   Activity.Title = Value
End Sub
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Ciao,
prova questo esempio banale:

Questo è il codice:

B4X:
Sub Process_Globals
 
End Sub
Sub Globals
   Dim di As CustomDialog
   Dim Panel1 As Panel

End Sub
Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("ricerca")
   
End Sub

Sub BtnCerca_Click
   Panel1.Initialize("")
   Panel1.LoadLayout("test")
   di.AddView(Panel1, 0, 0, 60%x, 100%y)  
   di.Show("Titolo", "", "Annulla", "", Null)
End Sub
In allegato hai il progetto completo.
In pratica apre una customdialog modale.
Per customizzare la popup devi modificare il layout chiamato "test".
Spero ti possa tornare utile.:sign0098:
 

Attachments

  • customdialog.zip
    8.2 KB · Views: 354

coslad

Well-Known Member
Licensed User
Longtime User
Grazie ragazzi

Tutti e due avete colpito nel segno.
Grazie

Inviato dal mio H9500 con Tapatalk 2
 
Top