Italian [Risolto] Bottoni scrollabili in B4A ok ma non riesco in B4J

LucaMs

Expert
Licensed User
Longtime User
Se continuassimo a parlare con te, che ti piace allungare i thread di 2 righe in 1000 finiremmo dopo l'estinzione della pandemia.


Continua da solo che io ho da lavorare
Io avevo risposto ed allegato un progetto. Poi:

Se qualcuno vuole intervenite per approfondire ben ven venga.

Avresti fatto meglio ad andare a lavorare prima e anziché scrivere quella cazzata.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Io confronto la ScrollView e la xCLV con 2 auto della stessa marca con i stessi motori.
Solo che nella ScrollView c'è solo una persona dentro e nella xCLV 5 persone e quattro valigie.
Quindi secondo me non possono andare sempre alla stessa velocità.
Questa metafora non è assurda ma sbagliata.

Non hai un "peso" maggiore, all'interno di una xCLV; hai del codice che si occupa di calcolare dimensioni e posizioni delle View, codice che tu sei costretto a scrivere nel tuo sorgente se usi una ScrollView e quindi la velocità (di visualizzazione) sarà praticamente la stessa.

Senza contare che una eventuale velocità inferiore dovrebbe essere percettebile dall'utente altrimenti che importanza ha?
 

Gnappo jr

Active Member
Licensed User
Longtime User
La xclv la uso solo per cose meno importanti che non richiedono molta velocità.
La dove invece è richiesta molta velocità, allora uso la ScrollView.
Per la maggior parte però uso una clv personalizzata, una per B4i e una per B4a.
A distanza di tempo anch'io sto rievando differenze di velocità assai apprezzabili in b4a tra Scrollview e xclv personalizzata.
La differenza è talmente marcata in B4A tanto da dover desistere, mentre in B4J non si nota.
Appena possibile cercherò di inserire dei progetti di test.
Grazie Filippo per il tuo contributo.
 

Star-Dust

Expert
Licensed User
Longtime User
Io confronto la ScrollView e la xCLV con 2 auto della stessa marca con i stessi motori.
Solo che nella ScrollView c'è solo una persona dentro e nella xCLV 5 persone e quattro valigie.
Quindi secondo me non possono andare sempre alla stessa velocità.
Paragone abbastanza azzeccato
 

Star-Dust

Expert
Licensed User
Longtime User
Grazie dell'utilissima risposta (perdona il lieve sarcasmo), magari visto che hai fatto la sdflexgrid (complimenti molto bella e sembra veloce) potresti fornire qualche osservazione tecnica ai poveri mortali che cercano di capire le potenzialità (e anche i limiti) dello sviluppo cross platform, perchè se questo problema c'è effettivamente non è cosa da poco.
Ps quest'ultimo avatar va bene, lascialo cosi.
Già ha spiegato molto bene Filippo.
Non ho fatto solo SD_FlexGrid ma quasi 70 librerie e non contando sorgenti free, esempi e turorial. Magari è solo un dettaglio, ma visto che lo hai citato tu, per una qualche ragione... magari specifico.

Quando posso partecipo al forum dando aiuto e pubblicando librerie e contenuti che possono essere utili, quando non posso pazienza.
Non credo che meriti rimproveri per le occasioni che non posso o non voglia, come nessuno rimprovera te perché non partecipi spesso nel forum aiutando altri sviluppatori. E' una partecipazione su base volontaria non un lavoro. Come io non rimprovero chi non mette like dopo aver ricevuto l'aiuto ecc..
In ogni caso quando posso/voglio e ho cose significative/utili da aggiungere partecipo volentieri.
(NB. Durante il giorno io ancora lavoro e non mi posso permettere di perdere tempo partecipandono a conversazioni inutilmente chilometriche che sono piene solo di polemiche e/o obiezioni pretestuose e sterili che non portano a nulla)

Grazie per i complimenti dell'avatar, ma a me piace cambiare.
 
Last edited:

amorosik

Expert
Licensed User
Questa metafora non è assurda ma sbagliata.

Non hai un "peso" maggiore, all'interno di una xCLV; hai del codice che si occupa di calcolare dimensioni e posizioni delle View, codice che tu sei costretto a scrivere nel tuo sorgente se usi una ScrollView e quindi la velocità (di visualizzazione) sarà praticamente la stessa.

Senza contare che una eventuale velocità inferiore dovrebbe essere percettebile dall'utente altrimenti che importanza ha?

A mio parere e' davvero difficile valutare 'a naso' le prestazioni
Basterebbe fare un paio di routine che vadano a caricare la stessa mole di dati prima con un sistema e poi con l'altro per capire quale sia la piu' performante
 

LucaMs

Expert
Licensed User
Longtime User
Basterebbe fare un paio di routine che vadano a caricare la stessa mole di dati prima con un sistema e poi con l'altro per capire quale sia la piu' performante
In questo caso, caricare e visualizzare; se effettivamente vedi una differenza notevole e fastidiosa tra le due, scegli la più veloce.

Io, solo in teoria, non penso ci sia tutta questa differenza e il motivo è molto semplice: il lavoro che la xCLV compie per posizionare le view devi comunque farlo tu caricando una ScrollView.

Veri vantaggi/svantaggi delle due, secondo me:

xCLV ti fornisce molti metodi che ti facilitano le cose e ti offrono varie funzionalità.
ScrollView ti lascia libero di caricare le view come ti pare, anziché "raggruppandole" per item/record (ma penso che questo raramente possa servire).
 
Last edited:

Star-Dust

Expert
Licensed User
Longtime User
Il naso c'entra poco, ma l'occhio si! Ma effettivamente ci vogliono dei dati oggettivi, quindi se mi riesce presenterò un programma di test per evidenziare quanto asserito.
Colgo l'occasione per chedere come si usa la comunty; ho capito che se si vuole ringraziare qualcuno non è sufficente ripondere grazie va premuto il link [Like], poi ho capito che bisogna rieditare il titolo iniziale ed aggiungere [RISOLTO] . Ma ste cose dove si imparano?
Ma una cosa non riesco ancora a capire, è assai diffusa nelle varie comunity, ci sono quei tre o quattro che rispondo sempre e comunque e, non di rado, danno risposte che nulla hanno di valore aggiunto, come ad esempio;
"Cerca meglio" "Rileggiti le risposte precedenti", "Non posso rispondere perchè ho altro da fare" , ecc. tanto da farmi sospettare che più uno risponde più gli vengono caricati dei "punti fidelty" 😇😇😇 e così?
(chi è senza peccato scagli la prima pietra)
Quando ti rispondono cerca meglio Vuol dire che la risposta c'è gia nel forum e come indica la netiquette bisogna prima cercare.

È un aiuto altrettanto importante anche quando ti fanno capire che devi imparare a usare meglio il comando di ricerca. Altrimenti rimani sempre dipendente degli altri e ti abitui alla strada piu breve, chiedere agli altri anziché cercare
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Ma ste cose dove si imparano?
A... naso 😄, come le funzionalità di molte app che non hanno help o non sono sufficienti.


"Cerca meglio" "Rileggiti le risposte precedenti", "Non posso rispondere perchè ho altro da fare" , ecc. tanto da farmi sospettare che più uno risponde più gli vengono caricati dei "punti fidelty" 😇😇😇 e così?
No, è giusto per dare un'ennesima risposta, per non lasciare la domanda in sospeso, quando si sia già data un'indicazione che si ritiene sufficiente nello stesso thread o che siano temi/problemi già trattati molte volte e quindi facilmente trovabili sul sito.
Non ci sono vantaggi nel postare molti messaggi.
 

Star-Dust

Expert
Licensed User
Longtime User
Non ci sono punti fidelity. Non vinco nulla e solo un modo per indicare dove si trova la soluzione (bottone solution) per chi legge dopo o ringraziare per chi ti aiuta (con un like). Fa parte della netiquette... Ma se non lo impari nessuno ti rimprovera...

Comunque ti sei presentato come esperto. Noi abbiamo imparato diverse cose usando il comando di ricerca, tu sicuramente potrai fare altrettanto o meglio.

Sopratutto sarebbe bello vedere i tuoi contributi d'aiuto verso altri sviluppatori oltre a chiederli.

Non chiederti cosa puo fare la community per te, ma cosa tu puoi fare per la community (molto originale no?)

adesso vado... Ho da fare.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
xCLV ti fornisce molti metodi che ti facilitano le cose e ti offrono varie funzionalità.
ScrollView ti lascia libero di caricare le view come ti pare, anziché "raggruppandole" per item/record (ma penso che questo raramente possa servire).
Dimenticavo un altro vantaggio importante di xCLV: è compatibile con B4A, B4i e B4J (vi pare poco?!), mentre ScrollView è solo B4A.
 

Gnappo jr

Active Member
Licensed User
Longtime User
Programma di test

Allego un semplice programma di test B4X (B4J b4A)
è fatto solo e soltanto per ragionare sui tempi di risposta della customlistview, l'ho fatto modificando un esempio preso nella comunity , credo di Erel
Il test crea 20 righe in una customlistview, premendo il bottone Click la customlistview viene cancellata e ricreata
In B4j i tempi di riposta non destano attenzione.
Invece in B4A nel mio dispositivo Android un Samsung J3 la lentezza della risposta è oggettivamente troppo elevata ed inutilizzabile ai fini pratici!
Tutto qui! Semplicemente questo.

Se questo servirà a qualcuno anche nel tempo per ragionare sull'efficenza di ciò che andrà a creare ne sarò felice, anche senza like.

PS
Chiedo al cecchino bacchettone di usare indulgenza anzi moderazione e di contenersi se può, evitando di replicare senza valore aggiunto sempre e comunque.
Scuola di programmazione disinteressata l'accetto ben volentieri ma a nome di tutti, scuola di vita proprio no! Chiaro?

Un saluto a tutti.
 

Attachments

  • scrollbar_test.zip
    191.9 KB · Views: 103
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Non l'ho scaricato (perlomeno per ora) ma certamente non è un test valido a confermare che xCLV sia più lento di ScrollView, visto che a quanto ho capito non hai tentato di caricare le stesse "righe" in quest'ultima, vero?
 

LucaMs

Expert
Licensed User
Longtime User
Allego un semplice programma di test B4X (B4J b4A)
L'ho scaricato, sto "leggendo" ma ancora non l'ho avviato (B4A).

B4X:
Sub makelist
    If CLV1.IsInitialized Then
        CLV1.clear
    End If
In quella routine CLV1 sarà sempre già stata inizializzata; dovresti, invece, controllare se contenga già degli item:
B4X:
    If CLV1.Size > 0 Then
        CLV1.clear
    End If


B4X:
    For Each article As String In a
        Private w As Int = CLV1.GetBase.Width
Qui dichiari e inizializzi ogni volta una variabile (w), mentre potresti farlo una sola volta, prima del ciclo.
B4X:
    Dim w As Int = CLV1.GetBase.Width
    For Each article As String In a


Per il resto, tutto normale; però, ripeto, non c'è confronto con una ScrollView. Confronto in temini di velocità di visualizzazione che, secondo me, praticamente non evidenzierebbe differenze.
 
Top