Buenas tengo el siguiente ptoblema , al crear un label con autosize (width=-2 y height=-2) si luego quiero inicializar el canvas en ese label me da un error: "java.lang.IllegalArgumentException: width and height must be > 0"
Osea:
B4X:
Dim miLbl As Label
miLbl.Initialize("miLbl")
miLbl.Text="Hola"
Activity.AddView(miLbl,10dip,10dip,-2,-2) ' para que ponga el ancho y el alto exacto
Dim C As Canvas
C.Initialize(miLbl) ' da error
Si miro el width y el height del label es -2, pero su ancho y alto real es mayor que cero pues mo lo pinta bien.
¿no puedo obtener un canvas de un label con autosize?
Cambialo por esto y ya no te dará error y tendras las dos cosas:
B4X:
Dim miLbl AsLabel
miLbl.Initialize("miLbl")
miLbl.Text="Hola"
Activity.AddView(miLbl,10dip,10dip,1,1)
Dim C As Canvas
C.Initialize(miLbl)
miLbl.Height = -2
miLbl.Width = -2
Siguiendo tu idea si en la Sub donde inicializo el Canvas, justo antes de inicializarlo pongo el height y width a un valor >0 inicializo el canvas yluego lo vuelo a poner a -2 y funciona sin dar error.