neanche il pannello di base? strano comportamento
in vb si ottiene tutto, e si conosce che tipo di view è, se label o image o altro
qui invece non si sa che tipo sia, e non si possono variare le proprietà specifiche
Anche con B4A puoi conoscere il tipo di "oggetto grafico" che trovi in un layout; però, se usi:
For Each V As View...
vengono considerate solo le View "vere" (o forse viene anche lanciato un errore) mentre le custom view non lo sono, non sono oggetti di tipo view, sono un pannello con dentro altre view e non ti viene restitituito automaticamente il pannello di base.
Se usassi:
For i = 0 To Activity.NumberOfViews - 1
Dim obj As Object = Activity.GetView(i)
If obj Is View Then
'...
Else
If GetType(obj) = "xxxxxxx" Then
End If
End If
Next
GetType ti restituisce il tipo di oggetto (una stringa) e, se è una custom view la quale mette a disposizione una proprietà come AsView per recuperarne il pannello di base, potresti usare questo pannello per le dimensioni.
Ma quale è la stringa restituita da GetType per le varie custom view? E se la custom view non fornisce il pannello di base?
Insomma, si può fare ma innanzitutto è complicato e poi la faccenda di adattare i layout a tutti i dispositivi in quel modo non funziona mai bene.
Si deve cercare di adattare i layout usando le Anchor e davvero poca roba negli script.
Usare due soli Variant (uno per il landscape e uno per il portrait, se l'app li prevede entrambi).
E... se il dispositivo è uno smartphone, usare un layout, se è un tablet, usarne uno differente (e scrivere codice differente nell'app).
Puoi anche provare ad adattare come vuoi tu (cioè in percentuale) impostando AutoScaleRate(1) nello script.
P.S. Un modo molto utile, secondo me, per vedere di aggiustare il layout usando le Anchor è quello di usare sempre un pannello come sfondo, come se fosse l'Activity, e "disegnare" su quello il layout, con le View agganciate (ancorate). Nel Designer stesso, modificando le dimensioni del pannello di base, vedi subito l'effetto (guarda
questo video). Inoltre, puoi selezionare un "dispositivo" in alto a destra, dove vedi "Match Chosen Variant", sempre per vedere se il risultato finale sarà soddisfacente.