Italian [risolto] B4J - Ancora da codice

Sagenut

Expert
Licensed User
Longtime User
Non credo sia possibile.
 

Star-Dust

Expert
Licensed User
Longtime User
Codice errato
B4X:
Sub SetPadding(v As View, Left As Int, Top As Int, Right As Int, Bottom As Int)
Dim jo As JavaObject = v
jo.RunMethod("setPadding", Array As Object(Left, Top, Right, Bottom)
End Sub


Codice corretto (vedi il post 7)
B4X:
Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
    lsv.Initialize("lsv")
    MainForm.RootPane.LoadLayout("lay1") 'Load the layout file.
    MainForm.RootPane.AddNode(lsv, 0, 0, 100, 100)
    lsv.Items.Add("Hello")
    MainForm.Show
    MainForm.RootPane.SetAnchors(lsv, (MainForm.Width/2)- lsv.Width, (MainForm.Height/2) - lsv.Height, (MainForm.Width/2) - lsv.Width, (MainForm.Height/2) - lsv.Height)
End Sub
 
Last edited:

giannimaione

Well-Known Member
Licensed User
Longtime User
B4X:
Sub SetPadding(v As View, Left As Int, Top As Int, Right As Int, Bottom As Int)
Dim jo As JavaObject = v
jo.RunMethod("setPadding", Array As Object(Left, Top, Right, Bottom)
End Sub
Ma quante ne sai
 

Star-Dust

Expert
Licensed User
Longtime User
Il padding non ha niente a che fare con gli ancoraggi del Designer (che funzionano e si possono impostare solo nel Designer).
Errore mio che ho postato il codice sbagliato, che fra l'altro era per B4A.
Ma in ogni caso, ti sbagli (e di grosso) perchè in B4j é possibe


B4X:
Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
    lsv.Initialize("lsv")
    MainForm.RootPane.LoadLayout("lay1") 'Load the layout file.
    MainForm.RootPane.AddNode(lsv, 0, 0, 100, 100)
    lsv.Items.Add("Hello")
    MainForm.Show
    MainForm.RootPane.SetAnchors(lsv, (MainForm.Width/2)- lsv.Width, (MainForm.Height/2) - lsv.Height, (MainForm.Width/2) - lsv.Width, (MainForm.Height/2) - lsv.Height)
End Sub
 
Last edited:

ivanomonti

Expert
Licensed User
Longtime User
Errore mio che ho postato il codice sbagliato, che fra l'altro era per B4A.
Ma in ogni caso, ti sbagli (e di grosso) perchè in B4j é possibe


B4X:
Sub AppStart (Form1 As Form, Args() As String)
    MainForm = Form1
    lsv.Initialize("lsv")
    MainForm.RootPane.LoadLayout("lay1") 'Load the layout file.
    MainForm.RootPane.AddNode(lsv, 0, 0, 100, 100)
    lsv.Items.Add("Hello")
    MainForm.Show
    MainForm.RootPane.SetAnchors(lsv, (MainForm.Width/2)- lsv.Width, (MainForm.Height/2) - lsv.Height, (MainForm.Width/2) - lsv.Width, (MainForm.Height/2) - lsv.Height)
End Sub

Grazie a tutti mi è stato utile.
 

Star-Dust

Expert
Licensed User
Longtime User
Dato che non è possibile con b4a, pensavo che fosse lo stesso anche con b4j (e b4i).
Non sono cosi convinto, che in B4A (o B4I) non si possa fare.
Un wrap o una customView potrebbe aggiornare le proprietà (left,Top,Wifth,Height) continuamente (con un timer o uno sleep) per simulare un Anchor.

Ma qualche tempo fà uno sviluppatore (di maggiore intuito) ha proposto il metodo SetRelBottom in questo therad:
Immagino si può adattare per tutte le altre proprietà Anchor
 

ivanomonti

Expert
Licensed User
Longtime User
Non sono cosi convinto, che in B4A (o B4I) non si possa fare.
Un wrap o una customView potrebbe aggiornare le proprietà (left,Top,Wifth,Height) continuamente (con un timer o uno sleep) per simulare un Anchor.

Ma qualche tempo fà uno sviluppatore (di maggiore intuito) ha proposto il metodo SetRelBottom in questo therad:
Immagino si può adattare per tutte le altre proprietà Anchor

Interessante ma tutte queste librerie (che ha volte non hanno seguito e con bug) preferisco non usarne troppe, se c'è qualcosa di nativo dove puoi controllare il flusso è meglio.
 

Star-Dust

Expert
Licensed User
Longtime User
Interessante ma tutte queste librerie (che ha volte non hanno seguito e con bug) preferisco non usarne troppe, se c'è qualcosa di nativo dove puoi controllare il flusso è meglio.
Sono moduli , quindi con codice sorgente. puoi modificarle , aggiornarle e eventualmente correggere bug.

Ma anche se fossero librerie (e non lo sono), io produco molte librerie, come diversi sviluppatori in questo forum, e.se il covid-19 non ci ferma, aggiorniamo sempre le librerie e diamo assistenza, peraltro anche su quelle gratuite.

Non esistono sempre metodi nativi, sopratttuto se passi da una piattaforma a un altra. Bisogna imparare a crearsi le cose da soli come facevamo in Assembler... creavi tutto da zero, ovviamente se non ci sono librerie che mettono a disposizione quel metodo.

Se usassimo solo i metodi nativi... XUI e tante altre librerie utilissime che ci aggiungono delle viste belle, funzionali e frendly non le potremmo usare per arricchire le nostre applicazioni
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
Già, ma avere a disposizione già tanti "strumenti", senza dover ogni volta reinventare la ruota, ti renderebbe parecchio più produttivo.
Si, sarebbe meglio.!!!
Anche se i cinesi non avessero perso un virus sarebbe stato meglio, intanto ci dobbiamo confinare in casa.

Con i "se" e con i "ma" non si scrivono le app.... questa me riuscita bene, ma la segno 😁 😁 😁 😁

Proprio per questo esistono tante librerie, per avere più strumenti anche quelli che nativamente non esistono
 

ivanomonti

Expert
Licensed User
Longtime User
Proprio per questo esistono tante librerie, per avere più strumenti anche quelli che nativamente non esistono


concordo, ma tante librerie fanno cagare, non hanno un test, un input dettagliato insomma molto approssimative, si rischia di non venirne a capo
 

Star-Dust

Expert
Licensed User
Longtime User
concordo, ma tante librerie fanno cagare, non hanno un test, un input dettagliato insomma molto approssimative, si rischia di non venirne a capo
vero ahahahaha 😂 😂 😂
 
Top