Spanish [SOLUCIONADO]ayuda con varios contenidos en listview

netklamath

Member
Licensed User
Longtime User
Ya estoy por aqui pidiendo ayuda de nuevo. Al ser novato reconozco que somos pesados. Llevo media tarde buscando por foros y no encuentro o llego a entender lo que he encontrado. Os explico lo que quiero conseguir hacer, que lo he visto en muchisimas aplicaciones, con lo cual creo que no sera muy dificil.

Quiero tener un listado (me da igual el control que sea, listview o de otra manera), en el cual, a la izquierda tenga una foto, luego 2 lineas de texto (una arriba y otra abajo), y luego a la derecha el tipico boton "switch" para on/of y que al darle al boton lo cambie de posicion (tengo las 2 imagenes del boton).

Por mas que miro, estoy hecho un lio, he pensado hacerlo con 2 listviews, y en el segundo añado el boton pero no se como emparejas los scroles, osa que cuando muevo un listview arriba o abajo, el otro listview vaya a la par.

No se si me he explicado bien lo que quiero. Un saludo y gracias por adelantado al que vaya a ayudarme ;)


EDITO: Ya he conseguido hacerlo con un scrollview y metiendo paneles con labels y bitmaps. Todo bien, pero ahora llevo horas atrancado en una tonteria visual. Quiero hacer que cuando pulso en una fila (un panel) me cambie de color como un boton y no hay manera. He probado con _click y _touch pero no me funciona, sobretodo _touch que no hace nada. Aqui dejo el codigo:

B4X:
Sub SU_ScrollAdd (strLinha1 As String , strLinha2 As String, foto_contacto As String, grabar As String, strID As String, strReturnPanel As String )

   Panel1.Initialize("ScrollView1Retorno"): ScrollView1.Panel.AddView(Panel1,0,PanelTop, 100%x,PanelHeight)
   Panel1.Tag = strID
   Panel1.Color = Colors.White


   lblText1.Initialize("lblText1") : lblText1.Text = strLinha1: Panel1.AddView(lblText1,60dip, 5dip,200dip,25dip): lblText1.Tag=strID
   Dim lblText2 As Label : lblText2.Initialize("") : lblText2.Text = strLinha2: Panel1.AddView(lblText2,60dip, 32dip,200dip,25dip): lblText1.Tag=strID


   lblText1.TextSize = 19
   lblText1.TextColor  = Colors.Black

   lblText2.TextSize = 12
   lblText2.TextColor  = Colors.Gray


   Dim imgUser  As ImageView
   imgUser.Initialize("")
   If File.Exists(File.DirDefaultExternal,foto_contacto)=False Then
   imgUser.Bitmap = LoadBitmap(File.DirAssets, "contact2.png")
   End If
   If File.Exists(File.DirDefaultExternal,foto_contacto)=True Then
     imgUser.Bitmap = LoadBitmap(File.DirDefaultExternal, foto_contacto)
   End If
   Panel1.AddView(imgUser,  5dip,1dip,45dip,45dip) ' Panel1.AddView(etiqueta,left,top,width,height)
   'Dim imgLinha As ImageView: imgLinha.Initialize(""): imgLinha.Bitmap = LoadBitmap(File.DirAssets, "Separador.png") : Panel1.AddView(imgLinha,0dip,59dip,ScrollView1.Width - 3dip,1dip)


   '**************************************************************************************************
   Dim objUI1 As UISwitch ' mete los switches a la derecha del scrollview


   objUI1.Initialize(Me,"objUISwitch",strID,65dip,35dip,SU_Model("off.png"),SU_Model("on.png"))
   If grabar = "si" Then
     objUI1.SetPosition(1) 'si strID contiene el numero 3, cambia el switch (en la fila 3 y 13 por ejemplo)
   'Panel1.AddView(objUI1.asView,275dip,3dip,65dip,35dip)
   End If
   Dim switch_izq As Int
   switch_izq=ScrollView1.Width / 1.18
   Panel1.AddView(objUI1.asView,switch_izq,10dip,65dip,35dip)


   '**************************************************************************************************

   PanelTop = PanelTop + PanelHeight + 1dip

   ScrollView1.Panel.Height = PanelTop

End Sub
 
Last edited:

netklamath

Member
Licensed User
Longtime User
muchisimas gracias, ya lo he estado mirando, pero no sabia como iba. Voy a mirar el enlace que me pones.
 
Top