Italian [B4A] consigli e delucidazioni

ivanomonti

Expert
Licensed User
Longtime User
ciao ragazzi oggi sono alle prese con 2 funzioni che non ho idea da dove incominciare

1) espandere le dimensioni in modo dinamico la casella di testo (label) sulla base del testo che verrà inserito nella risposta o del commento ma non ho idea di come fare il calcolo o scattare la dimensione (altezza) della label e del suo parent, in modo che si possa leggere tutto il testo senza che venga troncato.

2) ogni domanda posta potrebbe avere dei commenti da parte degli utenti e vorrei inserire in coda al post tutti i commenti come succede in facebook, quale sistema devo adottare?

3) per non andare a caricare centinaia di possibili post usando la funzione LIMIT di sql come posso caricare i record successivi o precedenti, esempio ho in primo piano i primi 50 post e quando arrivo al 40esimo post voglio caricare i prossimi 20 record o viceversa se sto retrocedendo la lettura., come controllo la clv?

01.png
 

LucaMs

Expert
Licensed User
Longtime User
1 - In B4A potresti usare la libreria StringUtils.
B4X:
Dim su As StringUtils
Dim Height As Int = su.MeasureMultilineTextHeight(TuaLabel, Text)
In quel modo ottieni l'altezza minima necessaria per la Label e poi ricalcolerai il "parente" di questa e tutto il resto, se necessario.


2 - Una xCustomListView. Dovrebbe essere utile inserire l'ultimo commento arrivato, quindi usare:
B4X:
Dim clv As CustomListView
clv.InsertAt(0,...
Anche in questo caso dovresti sfruttare il codice di cui al punto 1.
Qui c'è un esempio, che non ho provato ma mi fido dei sorgenti di Klaus 😊

3 - Nel DB vuoi conservare tutti i commenti, anche se fossero migliaia? Se sì, dovresti avere la data di inserimento come campo della tabella ed usare la clausola LIMIT nella Select. Altrimenti prima di ogni inserimento nella tabella, controllerai se il numero di record sia già il massimo che prevedi di conservare, eliminerai l'ultimo (in base alla data) ed eseguirai l'inserimento.
Per la CustomListView... 50 elementi puoi caricarli senza problemi (di usabilità da parte dell'utente)
 
Top