Spanish Problemas con el Foco de pagina activa utilizando DSTabLayout

desof

Well-Known Member
Licensed User
Longtime User
Hola adjunto el ejemplo para ver si me pueden ayudar con este ejemplo.
He descargado el ejemplo desde este hilo https://www.b4x.com/android/forum/threads/designsupport-additional-material-design-components.58893/ y descargue el ejemplo (FixedTabsExample2_00).
Le hice algunas modificaciones y el tema es que la primera vez que entra a cada pestaña genera la vista de forma dinámica pero al volver a otra pestaña que ya haya creado la vista no puedo captar el evento click de nuevo de los controles.
Se que es difícil entenderlo de esta manera pero les pido que vean el ejemplo por favor asi me ayudan en esto ya que esta sencillo de entender desde el mismo
 

EnriqueGonzalez

Well-Known Member
Licensed User
Longtime User
que hay!

A mi me suena a que estas cargando un layout mas de una vez, en el momento en que lo haces los controles anteriores pierden "su conexion" con los eventos. Espero que sea eso.
 

desof

Well-Known Member
Licensed User
Longtime User

desof

Well-Known Member
Licensed User
Longtime User
al abrir la app se muestra correcto y presiono el boton y responde correcto, voy a la segunda pestaña y lo mismo.
pero al volver a ka primera me da error como que no esta iniciado y no se como resolver. No quiero volver a Cargar todo por que en este ejemplo sencillo es rapido pero cuando tengo muchos datos se me relentiza la app.


19EHJcdWE.png


el Codigo es este :

B4X:
Sub TabLayout_TabSelected(Index As Int, SelectedTab As String, Tag As Object)
    If Index =0 Then
        VP_PageChanged (0)
    End If
End Sub
Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("layout1")
    PC.Initialize
    For i = 0 To 2
        Dim p As Panel       
        p.Initialize("")
        PC.AddPage(p, "")
    Next

    VP.PageContainer = PC   
    Dim ac As AppCompat
    TabLayout.Color = ac.GetThemeAttribute("colorPrimary")
    TabLayout.SetViewPager(VP)
    Dim xml As XmlLayoutBuilder
    TabLayout.SetTabIcon(0, xml.GetDrawable("ic_alarm_white_24dp"))
    TabLayout.SetTabIcon(1, xml.GetDrawable("ic_favorite_white_24dp"))
    TabLayout.SetTabIcon(2, xml.GetDrawable("ic_settings_white_24dp"))
End Sub
Sub VP_PageChanged (Position As Int)
    Dim AltoBoton As Int   
    AltoBoton=(VP.Height /3)
       
    If FLAGS(Position)=False Then
        panActive = PC.GetPageObject(Position)
        panActive.LoadLayout("custlv")
       
        If Position=0 Then                   
            For i= 1 To 1
                CustomListView1.Add(CreaItem( (i), CustomListView1.AsView.Width ,AltoBoton   ), AltoBoton+0dip, i)
            Next
            FLAGS(0)=True
        Else If Position=1 Then
            For i= 2 To 3
                CustomListView1.Add(CreaItem( (i), CustomListView1.AsView.Width ,AltoBoton ), AltoBoton+0dip , i)
            Next
            FLAGS(1)=True
        Else
            For i= 4 To 6
                CustomListView1.Add(CreaItem((i), CustomListView1.AsView.Width ,AltoBoton ), AltoBoton+0dip, i)
            Next
            FLAGS(2)=True
        End If   
    Else
        panActive = PC.GetPageObject(Position)
    End If
End Sub

Sub CreaItem(strStarCount As String, Width As Int, Height As Int) As Panel
    Dim p As Panel
    p.Initialize("")
    Activity.AddView(p, 0, 0, Width, Height)
    p.LoadLayout("CellBoton")
    p.RemoveView
    texto1.Text="tEXTO " & strStarCount
    Boton1.Text="bOTON " & strStarCount
    Return p
End Sub

Sub Boton1_Click
    panCustListCell_Click
End Sub

Sub panCustListCell_Click
     Try
        Dim index As Int = CustomListView1.GetItemFromView(Sender)
        Msgbox("ESTE ES EL BOTON " & CustomListView1.GetValue(index) ,"")
    Catch
        Msgbox(LastException,"")
    End Try
   
   
   
End Sub
 
Top