Italian scrollare all'indietro

Vasmar

Member
Licensed User
Buonasera,
sto diventando matto con una IA che mi suggerisce di volta in volta soluzioni diverse, ma ce ne fosse una che funzioni.
Semplicemente ho bisogno dello scroll di righe/eventi nel tempo, una riga per evento, a partire dai giorni nostri. per andare avanti si scrolla in avanti, ma per scrollare indietro non c'é verso di farlo funzionare bene. Ho provato con righe "normali", con Lazy, con CustomerListView, ma il problema è sempre ad andare indietro.
Immagino di essere il milionesimo ad avere bisogno di scrollare indietro. Esistono soluzioni alla portata di comuni mortali?
Mi potete dare almeno una direzione nella quale indagare?
Grazie.
 

Vasmar

Member
Licensed User
Una soluzione che suggerisce sua stupidità è di caricare subito tutto, ma per migliaia di record mi sa che è troppo (tempo)
 

Sagenut

Expert
Licensed User
Longtime User
Senza fare test ti chiedo solo come effettui lo scroll.
Usi il metodo ScrollTo? (O JumpTo ora non ricordo al volo)
Con lo stesso comando dovresti poter andare anche indietro.
 

Vasmar

Member
Licensed User
Non ho capito bene la domanda. Uso Private Sub CLV_ScrollChanged(Offset As Int)

e lì, a seconda del valore di Offset carico la pagina avanti o la pagina indietro, ma il problema sembra che sia nel riposizionamento andando indietro e nel rispetto della cronologia
 

LucaMs

Expert
Licensed User
Longtime User
Non ho capito bene la domanda. Uso Private Sub CLV_ScrollChanged(Offset As Int)

e lì, a seconda del valore di Offset carico la pagina avanti o la pagina indietro, ma il problema sembra che sia nel riposizionamento andando indietro e nel rispetto della cronologia
Quell'evento scatta quando la CLV sta "scrollando", se al suo interno esegui del codice per "scrollare" la CLV, come minimo ammattisci 😁, andrà in loop.

Allega un progetto d'esempio, meglio se B4J, cosi proviamo a darti una mano più concretamente.
 

Sagenut

Expert
Licensed User
Longtime User
Ho creato un esempio al volo usando gli esempi disponibili sul forum.
E' con le Activity ma è la stessa cosa con le B4XPages.
E' solo per vedere il funzionamento.
Se ho capito bene cosa volevi fare.
In basso vedrai 4 pulsanti per spostarti nella CLV di +1/-1 o +10/-10.
Fai sapere se ti è di aiuto.
 

Attachments

  • 1.zip
    115.3 KB · Views: 18

Vasmar

Member
Licensed User
Ho creato un esempio al volo usando gli esempi disponibili sul forum.
E' con le Activity ma è la stessa cosa con le B4XPages.
E' solo per vedere il funzionamento.
Se ho capito bene cosa volevi fare.
In basso vedrai 4 pulsanti per spostarti nella CLV di +1/-1 o +10/-10.
Fai sapere se ti è di aiuto.
grazie a tutti e due.
ho provato e scrolla, sia pure con qualche scatto. L'unica cosa è che se poi vado indietro con -1 o con -10, torna sempre al primo elemento, dove sto, sto. Ma questo è il meno.
se queste sono le modalità ora me le studio e magari, con il vostro permesso, glielo spiego a sua Altezza Incongrua.
il mio obiettivo è di leggere un archivio (Sql) che può diventare di poche migliaia di record e lasciar scorrazzare l'utente avanti e indrè.
grazie per l'aiuto, poi faccio sapere.
 

Sagenut

Expert
Licensed User
Longtime User
grazie a tutti e due.
ho provato e scrolla, sia pure con qualche scatto. L'unica cosa è che se poi vado indietro con -1 o con -10, torna sempre al primo elemento, dove sto, sto. Ma questo è il meno.
se queste sono le modalità ora me le studio e magari, con il vostro permesso, glielo spiego a sua Altezza Incongrua.
il mio obiettivo è di leggere un archivio (Sql) che può diventare di poche migliaia di record e lasciar scorrazzare l'utente avanti e indrè.
grazie per l'aiuto, poi faccio sapere.
Ho riprovato il mio esempio e a me scrolla di +1, -1, +10, -10 correttamente.
Tu intendi il mio esempio o hai cercato di applicare la cosa al tuo progetto?
Ti allego una versione modificata che salta tra i vari elementi immediatamente senza animazione.
Il fatto di dover leggere i dati da un SQL potrebbe creare qualche minimo rallentamento rispetto all'esempio che utilizza dati predefiniti.
 

Attachments

  • 1.zip
    115.3 KB · Views: 13
Last edited:

LucaMs

Expert
Licensed User
Longtime User
il mio obiettivo è di leggere un archivio (Sql) che può diventare di poche migliaia di record e lasciar scorrazzare l'utente avanti e indrè.
"Lazy" può essere molto utile, ma l'alternativa, se hai un db locale, di usare delle query che carichino "pochi" (qualche decina) di record alla volta, durante lo scrolling, non mi sembra una cattiva idea (forse perché è la mia 😄)
 

LucaMs

Expert
Licensed User
Longtime User
Boh, non so esattamente cosa ti serva; ti faccio vedere una piccola parte di un mio SW Desktop (B4J), SW che ovviamente mi ha già consentito di vincere 3 volte il Jackpot del SuperEnalotto, ma continuo a giocare, solo come passatempo 🤣

Non se tu intenda qualcosa di simile.
(si vede che sposto in alto e basso l'item "Fig 8")
P.S. Rileggendo il tuo primo post, direi che non si tratti di questo "scrolling", ma non elimino questo post, se non altro per la domanda finale 😄

javaw_ZwW3aSiQfS.gif



uhm... Fig 8, sta per "Figura 8", ma può "suonare" come figotto! Ergo, come faccio a non scrivere qualche altra stranezza della lingua italiana (stavolta non dei tanti strafalcioni dei "VIP" TV e qui anziché in "Chiacchiericci")...

Qualcuno mi spieghi per quale motivo:

- l'albero pero (maschile) produce pere <-- fem.
- l'albero melo (maschile) produce mele <-- fem.
- l'albero albicocco (maschile) produce albicocche <-- fem.
- l'albero susino (maschile) produce susine <-- fem.
etc.
- ma l'albero fico (maschile) produce fichi <-- masc. anzichè fem. !!! 🤔

uhm... lo chiedo a Copilot, chissà se arrossisce 🤣

1786926990714.png
 
Last edited:

Vasmar

Member
Licensed User
Fai sapere se ti è di aiuto.
Sicuramente sì, anche se mi sembra che sul mio telefono (Oppo con Android 13) vada un po' a scatti

Grazie, l'esempio funziona. Non so se avevo sbagliato qualcosa o faceva veramente - fino al primo (era sera tardi 🥱). Ma non importa.
Nel tuo esempio l'elenco parte da un punto (Item #1) e va avanti aggiungendo.
Il mio problema è leggere un elenco di "Impegni" da "oggi" fino a fine pagina (video). poi se l'utente scrolla (perdonatemi il neologismo orrendo) in avanti leggo in ordine di data dall'archivio e aggiungo elementi.
Il problema nasce quando l'utente scrolla indietro: devo leggere dall'archivio, diciamo, 20 elementi per riempire la pagina precedente e inserirli prima del primo. Qui ci sono due problemi:
- uno è che l'Amata Ignorante non riesce a calcolare esattamente lo spazio occupato, pertanto trovo dei buchi praticamente a casaccio,
- il secondo è che, leggendo per data, non so da che data indietro devo leggere per avere i miei tot record. Un mese potrebbe darmene 100 come nessuno.
Domanda stupida: ma in Sql non c'è modo di leggere sequenzialmente (1 per volta) in ordine decrescente? Per la verità andrebbe bene anche in ordine crescente: carico un'altra colonna con valore = 99999999 - data_evento.
 
Last edited:

Sagenut

Expert
Licensed User
Longtime User
Non conoscendo bene come e cosa deve fare la tua app mi chiedo se avere così tanta roba in una clv sia la soluzione ideale.
 

Vasmar

Member
Licensed User
Non conoscendo bene come e cosa deve fare la tua app mi chiedo se avere così tanta roba in una clv sia la soluzione ideale.
Sto facendo un'app come ce ne sono a centinaia (o migliaia): una agenda/calendario per gestire i propri impegni/appuntamenti/eventi/compleanni.
in un elenco di impegni attivi, devo poter andare indietro (quando siamo andati al mare, quando abbiamo fatto la gita, etc), no?
Non credevo che andare indietro presentasse tanta problematica
 

Sagenut

Expert
Licensed User
Longtime User
Io non vado molto d'accordo con i DB quindi forse non vedo al volo la soluzione probabilmente semplice.
A livello di calendario io farei una clv verticale per visualizzare un giorno specifico, e magari una clv orizzontale per cambiare il giorno.
 

Sagenut

Expert
Licensed User
Longtime User
Applicherei dei filtri per visualizzare periodi specifici o mese intero o settimana intera.
Così puoi ripopolare al volo la CLV.
Sicuramente è fattibile anche una lista eterna da scrollare liberamente.
Se mi viene qualcosa ti faccio sapere.
 

Vasmar

Member
Licensed User
Applicherei dei filtri per visualizzare periodi specifici o mese intero o settimana intera.
Così puoi ripopolare al volo la CLV.
Sicuramente è fattibile anche una lista eterna da scrollare liberamente.
Se mi viene qualcosa ti faccio sapere.
Ti ringrazio dei suggerimenti.
Ma cosa intendi con lista eterna?
 

Sagenut

Expert
Licensed User
Longtime User
Una CLV nella quale continui a scrollare, in avanti o indietro, e arrivi fino a dove vuoi.
Che penso sia quello che stai cercando di ottenere.
Ma scrollare indietro di 6 mesi o 1 anno non mi pare comodo. ;)
 
Top