Spanish Problemas con TabLayout al iniciar app

desof

Well-Known Member
Licensed User
Longtime User
Hola amigos tengo largo rato tratando de solucionar esto y no puedo la cuestion es que estoy usando el TabLayout que me crea 3 pestañas y todo funciona correctamente ecepto que al ingresar la primera vez a la actividad no encuentro la forma de que se muestre el contenido de la primer pestaña o sea index =0.
O SEA todo funciona sólo cuando le doy clic a una pestaña pero no puedo ir por código hacia alguna de ellas.

Adjunto el código mas abajo y las capturas corresponden a lo que veo cuando se presiona una pestaña y la otra es como aparece cuando abro la Actividad la primera vez.


ASI ME APARECE AL ABRIR LA ACTIVIDAD Y DEBERIA APARECER COMO EN LA SIGUIENTE IMAGEN




B4X:
Sub Activity_Create(FirstTime As Boolean)   
    Activity.LoadLayout("postmain2")
    Dim bd As BitmapDrawable = xml.GetDrawable("buscar")
    DSFloatingActionButton1.SetIcon(bd)   
    ' ──────────────────────
    ' CREA LAS PESTAÑAS
    ' ──────────────────────
    PC.Initialize
    Dim p1 As Panel
    p1.Initialize("")
    PC.AddPage(p1, "SERVICIOS")   
    Dim p2 As Panel
    p2.Initialize("")
    PC.AddPage(p2, "COMERCIAL")   
    Dim p3 As Panel
    p3.Initialize("")
    PC.AddPage(p3, "EXTRAS")   
    VP.PageContainer = PC   
    Dim AC As AppCompat
    TabLayout.Color = AC.GetThemeAttribute("colorPrimary")
    TabLayout.SetTabTextColors(Colors.LightGray, Colors.White)
    TabLayout.SetViewPager(VP)   
    ' ─────────────────────
    ' PREPARAR EL BOTON DE ACCION
    ' ─────────────────────
    Dim x As String ="SanCrisApp"
    If x.StartsWith("(") Then
        DSFloatingActionButton1.Hide
    Else
        DSFloatingActionButton1.Show
    End If           
End Sub

Sub Activity_Resume
    ToastMessageShow("resume",True)
    panActive = PC.GetPageObject(1)
    TabLayout_TabSelected(1,"COMERCIAL",Null)
'VP_PageChanged (0)
End Sub

Sub TabLayout_TabSelected(Index As Int, SelectedTab As String, Tag As Object)
    ToastMessageShow(SelectedTab,False)
        Select Case Index
        Case 0
            'ToastMessageShow("pestaña 0",False)
        End Select   
End Sub

Sub VP_PageChanged (Position As Int)   
    Dim AltoBoton As Int   
    AltoBoton=(panActive.Height/5) -5dip
    ToastMessageShow(AltoBoton,True)       
    panActive = PC.GetPageObject(Position)
    panActive.LoadLayout("custlv")   
   
    If Position=0 Then
        For i= 1 To 5
            CustomListView1.Add(CreaItem("" , "", " ", " ", (i), CustomListView1.AsView.Width ,AltoBoton  ), AltoBoton, i)
        Next
    Else If Position=1 Then
        For i= 1 To 5
            CustomListView1.Add(CreaItem("" , "", " ", " ", (i+5), CustomListView1.AsView.Width ,AltoBoton  ), AltoBoton, i)
        Next       
    Else
        For i= 1 To 5
            CustomListView1.Add(CreaItem("" , "", " " , " ", (i+10), CustomListView1.AsView.Width ,AltoBoton  ), AltoBoton, i)
        Next           
    End If   
End Sub
 

rscheel

Well-Known Member
Licensed User
Longtime User
Pasa lo siguiente, que estas cargando los datos de TabLayout cada ves que cambias de posiciones, es como si tuvieras un botón y cada ves que lo presionas carga una lista de datos en listview.

Editado por mi .
 
Last edited:

desof

Well-Known Member
Licensed User
Longtime User
Hola,

Creo que no fue interpretada adecuadamente mi consulta..
Efectivemente cada vez que se cambia de pestaña se genera una serie de botones (5 o 6 nada mas) de forma dinamica asi utilizo el mismo Layout y lo reutilizo, por lo que no veo inconveniente en esto.
El problema era que no lograba que establecer la vista al abrir pero ya lo he logrado de esta forma

B4X:
Sub TabLayout_TabSelected(Index As Int, SelectedTab As String, Tag As Object)
    'ToastMessageShow(SelectedTab,False)
        Select Case Index
        Case 0
            panActive = PC.GetPageObject(0)
            VP_PageChanged (Index)
         End Select   
End Sub

Gracias por tu ayuda rschel
 

rscheel

Well-Known Member
Licensed User
Longtime User

Que bueno que lo ayas resuelto, saludos.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…