I'm designing a mobile app with connection to a remote bd, the carfo elements in a scrollview, the problem I have is that the event does not work Scrollview_ScrollChanged does nothing.
Thank you.

Thank you.
B4X:
Sub Process_Globals
Dim t As Timer
End Sub
Sub Globals
Private BarraEstadoMain As ACToolBarLight
Private Scrollview As ScrollView
Private PanelContMain As Panel
Private ServerIP As String
Private Panel1 As Panel
Private texto1 As Label
Private texto2 As Label
Private texto3 As Label
'Dim anim As Animation
Private PanelFiltro As Panel
'Private Spinner1 As Spinner
'Private Filtro As Label
Private ImageView1 As ImageView
Dim btnTest As Button
Private Fab1 As FloatingActionButton
'Private mLastScrollY As Int = 0
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("LayoutMain")
BarraEstadoMain.SetAsActionBar
BarraEstadoMain.Title = "Lista"
BarraEstadoMain.InitMenuListener
ServerIP="http://miservidor/db.php"
Datos_PHP
End Sub
Sub Activity_CreateMenu(Menu As ACMenu)
Private ACSubmenu As ACSubMenu
Menu.Clear
Menu.Add(1, 3, "Opción1", Null)
Menu.Add(2, 4, "Opción2", Null)
Menu.Add(3, 5, "Opción3", Null)
ACSubmenu = Menu.AddSubMenu(1, 4, 6, "Submenu")
ACSubmenu.Add(101, 1, "Submenu Item 1", Null)
ACSubmenu.Add(102, 2, "Submenu Item 2", Null)
End Sub
Sub BarraEstadoMain_MenuItemClick (Item As ACMenuItem)
Log("Menu Item Clicked: " & Item.Id & " - " & Item.Title)
ToastMessageShow("Menu Item Clicked: " & Item.Id & " - " & Item.Title, False)
End Sub
Sub GetData(SQL_Pre As String, sJob As String)
Dim GetSQL As HttpJob
GetSQL.Initialize(sJob, Me)
GetSQL.download2(ServerIP, Array As String ("SQL", SQL_Pre))
End Sub
Sub Datos_PHP
GetData("SELECT * FROM mitabla;","GetOfert")
End Sub
Sub JobDone(Job As HttpJob)
ProgressDialogHide
If Job.Success Then
Dim res As String
res = Job.GetString
Log("Back from Job:" & Job.JobName )
Log("Job Text: " & res)
Dim parser As JSONParser
parser.Initialize(res)
Select Job.JobName
Case "GetOfert"
Dim ListMode As List
Dim lst As List
lst.Initialize
ListMode = parser.NextArray 'returns a list with maps
If ListMode.Size == 0 Then
ToastMessageShow("No hay registros", True)
Else
Scrollview.Initialize(56dip *1)
Activity.AddView(Scrollview, 0, 0, 100%x, 100%y)
Scrollview.Panel.Height = 127dip * ListMode.Size '127dip
'Scrollview.Panel.LoadLayout("LayoutMain")
'Filtro.Initialize("")
'Filtro.Text = "Filtrar: "
'Filtro.TextColor = Colors.Blue
PanelFiltro.Initialize("panelFiltro")
PanelFiltro.Color=Colors.RGB(230,126,34)
Scrollview.Panel.AddView(PanelFiltro,0%x,53dip,100%x,180dip)
PanelFiltro.Elevation = 8dip
'Scrollview.Panel.AddView(Spinner1,25%x,20dip,230dip,20dip)
'Load a Drawable for the icon
Dim xml As XmlLayoutBuilder
Fab1.Initialize("Fab1")
Fab1.Icon = xml.GetDrawable("ic_add_white_24dp")
Fab1.Color = Colors.RGB(30,50,190)
Fab1.ColorPressed = Colors.RGB(50,70,210)
Fab1.ColorRipple = Colors.RGB(90,110,250)
Scrollview.Panel.AddView(Fab1,80%x,200dip,56dip,56dip)
'Set the offset of hide position. This is the amount the FAB moves on hide.
Fab1.HideOffset = 100%y - Fab1.Top
Fab1.Hide(False)
'Set up a timer to show the FAB delayed.
t.Initialize("Timer", 300)
t.Enabled = True
For i = 0 To ListMode.Size -1
Dim ListaData As Map
ListaData = ListMode.Get(i)
'lst.Add(Mode.GEt("Modelo"))
'ToastMessageShow(ListaData.Get("titulo"), False)
Panel1.Initialize("panel"&i)
Panel1.Color=Colors.White ' el color que tu quieras
Scrollview.Panel.AddView(Panel1,2%x,((i+2)*127dip),96%x,110dip) '127dip),96%x,110dip)
'anim.InitializeTranslate("anim", 0, 0, 0, -200dip)
'anim.Duration = 500
'anim.Start(Panel1)
Panel1.Elevation = 5dip
Dim gd As GradientDrawable
gd.Initialize("TR_BL", Array As Int(Colors.White, Colors.White))
gd.CornerRadius = 2dip
Panel1.Background = gd
texto1.Initialize("etiqueta")
texto1.TextColor = Colors.Black ' el color que tu quieras
texto1.Text = ListaData.Get("countryName")
Panel1.AddView(texto1,10dip,(10dip),100%x,50%y)
texto2.Initialize("etiqueta")
texto2.TextColor = Colors.Black ' el color que tu quieras
texto2.Text = ListaData.Get("capital")
Panel1.AddView(texto2,10dip,(40dip),100%x,50%y)
texto3.Initialize("etiqueta")
texto3.TextColor = Colors.Blue ' el color que tu quieras
texto3.Text = ListaData.Get("continentName")
Panel1.AddView(texto3,10dip,(70dip),100%x,50%y)
ImageView1.Initialize("ImageView1")
'ImageView1.Bitmap = LoadBitmap(File.DirRootExternal & "/Download", "alexandra.gif" )
GetPicasso.RunMethodJO("load", Array("http://i.imgur.com/DvpvklR.png")).RunMethodJO("into", Array(ImageView1))
ImageView1.Gravity = Gravity.FILL
Panel1.AddView(ImageView1,68%x, 10dip, 90dip, 90dip)
btnTest.Initialize("btnTest")
Panel1.AddView(btnTest,55%x, 55dip, 50dip, 50dip)
btnTest.Tag= ListaData.Get("countryName")
btnTest.Text="IR"
Next
End If
End Select
End If
End Sub
Sub GetContext As JavaObject
Return GetBA.GetField("context")
End Sub
Sub GetBA As JavaObject
Dim jo As JavaObject
Dim cls As String = Me
cls = cls.SubString("class ".Length)
jo.InitializeStatic(cls)
Return jo.GetFieldJO("processBA")
End Sub
Sub GetPicasso As JavaObject
Dim jo As JavaObject
'com.squareup.picasso.Picasso.with(context)
Return jo.InitializeStatic("com.squareup.picasso.Picasso").RunMethod("with", Array(GetContext))
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub btnTest_Click
Dim Send As Button
Send=Sender
ToastMessageShow("Button "&Send.Tag, False)
End Sub
Sub Fab1_Click
If Fab1.IsShowing Then
Fab1.Hide(True)
t.Interval = 300
t.Enabled = True
End If
End Sub
Sub Timer_Tick
Fab1.Show(True)
t.Enabled = False
End Sub
'If we scroll up or down the FAB is hidden or shown again.
Sub Scrollview_ScrollChanged(Position As Int)
ToastMessageShow(Position,False)
Log(Position)
If Position > 3dip Then
Fab1.Hide(True)
Else
Fab1.Show(True)
End If
' If Abs(Position - mLastScrollY) > 3dip Then
' If Position > mLastScrollY Then
' Fab1.Hide(True)
' Else
' Fab1.Show(True)
' End If
' End If
' mLastScrollY = Position
End Sub

Last edited: