Italian Problemi conversione da Activity a B4XPages

LucaMs

Expert
Licensed User
Longtime User
1 - perché il bottone di spunta non funziona, per confermare il campo, mentre la X per annullare si..
Niente, in B4A è sempre così, anche avendo altre B4XFloatTextField nello stesso Panel (o altre View in grado di ricevere il focus).
In B4J funziona come ci si aspetta, invece.
😲

E' molto probabile che sia un bug. Magari troverò la voglia di guardare il sorgente (della libreria, ovviamente).
 

SimonAndroid

Active Member
Licensed User
Longtime User
View attachment 117824

Da qualche parte, nella B4XMainPage, usi quella libreria, immagino. Dovresti mettere un #IF B4I...
Ho come l'impressione di non aprire il progetto B4X correttamente, mi spiego i lo apro sempre con B4A è corretto? Quel messaggio se riapro il file zippato non mi compare devo aprirlo con una sorta di B4X, ovviamente non uso B4i e nemmeno B4J... forse questa cosa che all'apparenza sembra banale magari la sto facendo errata da una vita..
 

SimonAndroid

Active Member
Licensed User
Longtime User
2 - altra cosa, come faccio a far scorrere la CLV in modo che scrolli il campo successivo e non venga coperto dalla tastiera, cioè posso avere sempre il focus sulla maschera in modo che la lista esegua lo scroll in modo sequenziale lasciando sempre la visibilità del campo e non rimanga nascosto o sotto la tastiera o sotto lo schermo.. Vorrei costruire una maschera per inserimento di campi diversi (testo, bottoni, liste scelte, ..ecc..) che però non stanno tutti in una pagina ma deve scrollare per permettere l'inserimento l'oggetto CLV è la soluzione ottimale, o ci sono altri oggetti da utilizzare..
Forse nella mia spiegazione non ho descritto correttamente quello che intendevo, non mi serve un modo per far comparire la tastiera, ma la possibilità di far scorrere verso l'alto la CLV in modo automatico es. inserisco il campo1, campo2, il campo 3 rimane sotto coperto, io vorrei che alla validazione del campo 2 la lista 'scrollasse' verso l'alto affinché sia visibile il campo successivo e cosi via, ho visto App su Android che lo fanno senza problemi..
 

LucaMs

Expert
Licensed User
Longtime User
Forse nella mia spiegazione non ho descritto correttamente quello che intendevo
No, ti sei spiegato benissimo, solo che nella prova che ho fatto al volo ho avuto il miraggio che avesse funzionato.

E' comunque necessario usare la libreria IME(2). Nel progetto che ho allegato all'ultimo post puoi vedere la riga:
B4X:
'    mIme2.AddHeightChangedEvent
In questo thread di Erel c'è la spiegazione di quella funzionalità.

Togli l'apostrofo = "decommenta" la riga.
Aggiungi:
B4X:
#IF B4A
    Private Sub IME2_HeightChanged(NewHeight As Int, OldHeight As Int)
        CLV1.GetBase.SetLayoutAnimated(0, 0, 0, CLV1.GetBase.Width, NewHeight)
        CLV1.Base_Resize(CLV1.GetBase.Width, CLV1.GetBase.Height)
    End Sub
#End If

e aggiungi questa riga al file Manifest:
B4X:
SetActivityAttribute(main, android:windowSoftInputMode, adjustResize|stateHidden)

In questo modo funzionerà... più o meno come dici tu. "Più o meno" perché più che far scorrere la xCLV fino alla successiva B4XFloatTextField, verrà eseguito un salto fino a quella. Per farlo come dici tu la cosa è molto meno semplice.
 

LucaMs

Expert
Licensed User
Longtime User
Ho come l'impressione di non aprire il progetto B4X correttamente, mi spiego i lo apro sempre con B4A è corretto?
Una volta che hai creato un nuovo progetto B4XPages, dall'interno di uno qualunque degli "ambienti" (B4A, B4J, B4i) viene creata la struttura (cartelle) che hai visto.
A quel punto puoi aprire il progetto che vuoi, dei 3, entrando nella cartella e facendo doppio-click sul file di progetto relativo (ovviamente anche tramite i file recenti).

Quel messaggio se riapro il file zippato non mi compare devo aprirlo con una sorta di B4X, ovviamente non uso B4i e nemmeno B4J... forse questa cosa che all'apparenza sembra banale magari la sto facendo errata da una vita..
Questo non l'ho capito; suppongo che con "riapro il file zippato" tu intenda "decomprimo il file zippato". A quel punto hai la struttura di cartelle create originariamente.
Questo se per "zippare" - esportare il progetto B4XPages (ovvero tutte le cartelle) hai fatto CTRL+Click sulla riga di commento nella B4XMainPage:
B4X:
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=xCardListLM.zip
 

LucaMs

Expert
Licensed User
Longtime User
Pensando a quale dovrebbe essere la soluzione perfetta per ciò che hai chiesto, mi sono domandato una "cosuccia": un povero programmatore cerca di utilizzare al massimo le B4XView (e roba relativa, XUI, etc.) per fare in modo che il proprio progetto, mettiamo B4A-Android, possa poi funzionare anche con B4I-iOS.
Nel caso specifico (e direi molto comune) della xCustomListView, comodissima e funzionante su tutt'e tre le piattaforme, dato che IME è solo Android, che salti mortali devi fare con iOS? Già in B4A non è semplice...!
 

LucaMs

Expert
Licensed User
Longtime User
In questo modo funzionerà... più o meno come dici tu. "Più o meno" perché più che far scorrere la xCLV fino alla successiva B4XFloatTextField, verrà eseguito un salto fino a quella. Per farlo come dici tu la cosa è molto meno semplice.
Finalmente, dopo non poche capocciate al muro 😄:mad:, pare funzionare come intendi tu (allegato).

Penso che chiederò ("Wish") di poter impostare la velocità di scrolling delle xCustomListView - di aggiungere una proprietà per farlo.
Fatto.
 

Attachments

  • xCardListLM2.zip
    225.5 KB · Views: 135

SimonAndroid

Active Member
Licensed User
Longtime User
Finalmente, dopo non poche capocciate al muro 😄:mad:, pare funzionare come intendi tu (allegato).
Perfect! Questo è proprio come intendevo io, lo scorrimento automatico della CLV ed il focus sul campo successivo alla pressione della validazione del campo..
Ovviamente ti ringrazio ancora (@LucaMs) addirittura una risposta per Ferragosto, non me l'aspettavo, sei il top 🔝 24h-nonstop!
 

LucaMs

Expert
Licensed User
Longtime User
Perfect! Questo è proprio come intendevo io, lo scorrimento automatico della CLV ed il focus sul campo successivo alla pressione della validazione del campo..
Ovviamente ti ringrazio ancora (@LucaMs) addirittura una risposta per Ferragosto, non me l'aspettavo, sei il top 🔝 24h-nonstop!
Ti... rinprego 😄.

Sto ultimando una nuova versione, perché non mi convince lo script che hai messo nel layout della card.
Due minuti, la pubblico e poi mi farai sapere (penso e spero :) ) se ti funziona bene - magari su dispositivi con display di dimensioni diverse.
 

SimonAndroid

Active Member
Licensed User
Longtime User
Ottimo, funziona benissimo ho provato anche il 'copy/paste with history' come consigliato da @Erel su Windows 10, molto utile non conoscevo quella funzione...
 
Top