Spanish Label con autosize y Canvas

IdasI4A

Active Member
Licensed User
Longtime User
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?

Gracias por la ayuda.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

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

Saludos
 

IdasI4A

Active Member
Licensed User
Longtime User
Ingeniosa solución. Muy buena idea.

Lo único que si posteriormente, en otra Sub quiero obtener el canvas me vuelve a dar error. Tendría que tener el canvas como variable global.

Saludos.
 

IdasI4A

Active Member
Licensed User
Longtime User
Solucionado

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.

Gracias por la idea
 
Top