Welcome
Benvenuto sul forum livecode italia

Stai vedendo il forum come ospite, che limita il tuo utilizzo del forum. Se ti registri sul forum, avrai la possibilità di pubblicare post e risposte, comunicare privatamente con gli altri membri, e altre funzioni. In aggiunta, i membri registrati vedono meno pubblicità. Registrarsi è veloce, semplice, e assolutamente gratuito (oltre che a liberarci da molto spam), quindi vai su ucp.php?mode=register e unisciti alla nostra comunità.

La tastiera mobile copre il controllo

Qui si trattano argomenti che hanno a che fare su Livecode

Re: La tastiera mobile copre il controllo

Messaggioby francof » lun lug 18, 2016 12:16 pm

ciao e grazie x la tua pazienza ma, evidentemente sono di coccio.

quello che ho capito è che i valori riportati dalla fuzione effective working screenrect si riferiscono a:
Y i valori verticali, 25 angolo sup sx, 297 angolo inf dx
X i valori orizzontali, 0 angolo sup sx, 320 angolo inf dx
dopo di che non ho la più pallida idea di come utilizzarli x spostare il mio campo e nemmeno riesco a pensare ad una soluzione.
francof
 
Posts: 75
Joined: lun lug 14, 2014 6:33 pm
Has thanked: 6 time
Have thanks: 1 time

Re: La tastiera mobile copre il controllo

Messaggioby livecodeitalia » mar lug 19, 2016 1:11 pm

Inizialmente senza tastiera hai questo valore: "0,25,320,534".
Quando esce la tastiera hai quest'altro: "0,25,320,297". Quindi tutti gli oggetti che hanno il bottom maggiore di 297 vanno riposizionati.
Qui hai due possibilità:
  • se è solo un oggetto da riposizionare, riposizioni solo quello, impostando la proprietà bottom oppure la proprietà loc.
  • raggruppi tutti gli oggetti visibili, e crei uno scroller nativo android per muovere il tutto. Lo scroller nativo avrà come rect "0,25,320,297", mentre come contentrect "0,25,320,534"
Avatar utente
livecodeitalia
Site Admin
 
Posts: 319
Joined: mer lug 09, 2014 11:47 am
Has thanked: 25 time
Have thanks: 13 time

Re: La tastiera mobile copre il controllo

Messaggioby francof » mar lug 19, 2016 7:57 pm

Sì, il valore che cambia è l'ultimo che si riferisce all'altezza della finestra visibile.
297 è l'altezza della finestra con la tastiera visibile il problema è che il campo che devo spostare verso l Alto ha un bottom di 270 già più in basso del 297.
Se imposto 297 come bottom ricavato dalla comparsa della tastiera,il campo si sposta,leggermente, verso il basso.
francof
 
Posts: 75
Joined: lun lug 14, 2014 6:33 pm
Has thanked: 6 time
Have thanks: 1 time

Re: La tastiera mobile copre il controllo

Messaggioby livecodeitalia » mer lug 20, 2016 1:42 pm

Se il bottom di un controllo è 270, allora non è mai coperto dalla tastiera e non devi muoverlo.
Ti ripeto che l'asse Y punta verso il basso, quindi le coordinate sono così:
Codice: Seleziona tutto
   10 20 30 40 50
10
20
...
250
260
270
280
Avatar utente
livecodeitalia
Site Admin
 
Posts: 319
Joined: mer lug 09, 2014 11:47 am
Has thanked: 25 time
Have thanks: 13 time

Re: La tastiera mobile copre il controllo

Messaggioby francof » mer lug 20, 2016 10:16 pm

Al momento sono fuori casa x un paio di giorni, al rientro sarò più preciso, quello di cui sono certo è che il campo viene coperto dalla tastiera. Impostando come bottom l ultimo valore, l unico che cambia dopo la comparsa della tastiera, ricavato dalla fuzione, il campo si sposta leggermente verso il basso.
francof
 
Posts: 75
Joined: lun lug 14, 2014 6:33 pm
Has thanked: 6 time
Have thanks: 1 time

Re: La tastiera mobile copre il controllo

Messaggioby francof » mar lug 26, 2016 6:01 pm

ciao, rieccomi.

evidentemente continuo a non capire. il comando answer mi ritorna i segg. valori:
l'asse Y senza tastiera = 534
Y con tastiera = 297
location del campo che vorrei alzare = 145,272

quando la tastiera è visibile il campo rimane nascosto, allego un piccolo esempio (codice e apk)
Attachments
BABO - prova.rar
(2.7 MiB) Scaricato 14 volte
francof
 
Posts: 75
Joined: lun lug 14, 2014 6:33 pm
Has thanked: 6 time
Have thanks: 1 time

Re: La tastiera mobile copre il controllo

Messaggioby livecodeitalia » mer lug 27, 2016 9:41 am

Ho visto il codice. Fai attenzione che la location è il baricentro di un oggetto. Quindi se imposti il baricentro di un oggetto sul bordo dello schermo visibile, la metà di esso non sarà fuori dallo schermo. Ecco una correzione:
Codice: Seleziona tutto
on keyboardActivated
   if the long id of fld "fldGradiBabo" is in the long id of the focusedobject then      --sposta solo il campo che rimane nascosto dalla tastiera (gradi babo)
      put the effective working screenrect into areascoperta
      set the itemDel to comma
      set the bottom of fld "fldGradiBabo" to item 4 of areascoperta
   end if
end keyboardActivated


Inoltre correggi anche il codice del campo in questo, altrimenti blocchi il percorso degli eventi associati al campo:
Codice: Seleziona tutto
on keyDown pkey
   if pkey is in "1234567890," then
      pass kedDown
   else
      beep
   end if
end keyDown
Avatar utente
livecodeitalia
Site Admin
 
Posts: 319
Joined: mer lug 09, 2014 11:47 am
Has thanked: 25 time
Have thanks: 13 time

Re: La tastiera mobile copre il controllo

Messaggioby francof » mer lug 27, 2016 3:56 pm

livecodeitalia ha scritto:...Fai attenzione che la location è il baricentro di un oggetto. Quindi se imposti il baricentro di un oggetto sul bordo dello schermo visibile, la metà di esso non sarà fuori dallo schermo...

Location è sato l'ultimo tentativo fatto, oltre ad usare Bottom, Top, x ottenere lo spostamento del campo, ed avevo notato che il campo veniva spostato lateralmente quasi fuori dello schermo. ma era un problema secondario che avrei sistemanto successivamente.

ho provato il codice corretto da te ma, sempre senza risultato: il campo è sempre nascosto dalla tastiera.
domanda: a te funziona? (io sto facendo i test su di un normalissimo samsung)

livecodeitalia ha scritto:...
Inoltre correggi anche il codice del campo in questo, altrimenti blocchi il percorso degli eventi associati al campo:
...

cosa s'intende x blocco del percorso?
il codice che ho usato l'avevo preso da una lezione LC

riallego il codice corretto.

grazie
franco
Attachments
prova.livecode
(463.71 KiB) Scaricato 13 volte
francof
 
Posts: 75
Joined: lun lug 14, 2014 6:33 pm
Has thanked: 6 time
Have thanks: 1 time

Re: La tastiera mobile copre il controllo

Messaggioby livecodeitalia » gio lug 28, 2016 11:07 am

Allora ci sono due cose.

Primo: hai impostato sul il fullscreenmode su exactFit. Questo dice a livecode di deformare tutto in modo da riempire lo schermo, ma con questa opzione i riferimenti con i pixel dello schermo si perdono. Non puoi usare exactFit se devi spostare oggetti in riferimento alla tastiera. Devi fare tutto da codice.

Secondo: la proprietà effective working screenrect ti dice dove si trova e l'estensione dell'area dello stack, ma le proprietà loc/bottom sono riferite alla card stessa, quindi c'è da fare una sottrazione, come il seguente codice:
Codice: Seleziona tutto
on keyboardActivated
     put item 4 of the effective working screenrect into hhh
     put hhh - item 2 of the effective working screenrect into hhh
     set the bottom of fld "fldGradiBabo" to hhh
end keyboardActivated


Testato e funziona.
Avatar utente
livecodeitalia
Site Admin
 
Posts: 319
Joined: mer lug 09, 2014 11:47 am
Has thanked: 25 time
Have thanks: 13 time

Re: La tastiera mobile copre il controllo

Messaggioby francof » gio lug 28, 2016 3:39 pm

ecco dov'era l'inghippo, remmando il set di fullscreenmode funziona anche a me.

grazie ancora
franco
francof
 
Posts: 75
Joined: lun lug 14, 2014 6:33 pm
Has thanked: 6 time
Have thanks: 1 time

Previous

Return to Generale

Who is online

Visitano il forum: Nessuno e 1 ospite

cron
suspicion-preferred