Italian XCustomListView - Impostare tipo e size del font usando AddTextItem

Sabotto

Active Member
Licensed User
Devo mostrare delle righe di nomi in una listview con il font monospace
Con la listview classica facevo cosi:

B4X:
lvIscritti.SingleLineLayout.ItemHeight=100
lvIscritti.SingleLineLayout.Label.TextColor=Colors.Black
lvIscritti.SingleLineLayout.Label.Typeface = Typeface.DEFAULT_BOLD
lvIscritti.SingleLineLayout.Label.Typeface=Typeface.MONOSPACE
lvIscritti.SingleLineLayout.Label.TextSize=12
'e poi
lvIscritti.AddSingleLine("Nome", "")

Ora voglio usare la xCustomListView e sto usando
B4X:
clvIscritti.AddTextItem("Nome")
Perchè alla fine devo semplicemente scrivere una stringa, quindi non mi servono layout, label, pannelli, ecc
Ma non riesco ad impostare l'altezza del font e il tipo monospace.
 

Sabotto

Active Member
Licensed User
ehm... grazie.. ma ... dopo createfont2( che metto per avere un font monospace o un Courier?
 

Sagenut

Expert
Licensed User
Longtime User
Prova così
B4X:
Dim cs As CSBuilder
CustomListView1.AddTextItem(cs.Initialize.Typeface(Typeface.MONOSPACE).Append("IL MIO TESTO").PopAll, Null)

EDIT
Ho corretto il codice, và prima impostato il Typeface.
 
Last edited:

Sabotto

Active Member
Licensed User
Prova così
B4X:
Dim cs As CSBuilder
CustomListView1.AddTextItem(cs.Initialize.Typeface(Typeface.MONOSPACE).Append("IL MIO TESTO").PopAll, Null)

EDIT
Ho corretto il codice, và prima impostato il Typeface.
non va...
ok. va bene. Ma per la grandezza del font?
 

Sagenut

Expert
Licensed User
Longtime User
Rileggi il post precedente.
Avevo sbagliato.
Và impostato prima il Typeface.
 

Sagenut

Expert
Licensed User
Longtime User
ok. va bene. Ma per la grandezza del font?
B4X:
CustomListView1.AddTextItem(cs.Initialize.Typeface(Typeface.MONOSPACE).Size(12).Append("IL MIO TESTO").PopAll, Null)
 

Sabotto

Active Member
Licensed User
E per impostare l'altezza delle righe?....
Trovo solo esempi con i panel come item e quindi si modifica l'altezza del panel; ma nel mio caso?
 

Sagenut

Expert
Licensed User
Longtime User
Se hai bisogno di tutto questo controllo forse ti conviene fare un Item classico con una Label da caricare su un Panel così ci fai tutto quello che vuoi.
Non sò se è impostabile l'altezza con AddTextItem.
 

Sagenut

Expert
Licensed User
Longtime User
Ho trovato qualcosa
B4X:
Dim cs As CSBuilder
CustomListView1.AddTextItem(cs.Initialize.Typeface(Typeface.MONOSPACE).Append("IL MIO TESTO").PopAll, Null)
CustomListView1.ResizeItem(CustomListView1.Size - 1, 100dip)
In questo modo puoi fare un Resize al volo dell'ultimo item che aggiungi.
 

Sagenut

Expert
Licensed User
Longtime User
Una volta che hai messo tutto in una Sub la richiami passandogli il testo e l'altezza che vuoi e sei a posto.
Se devi lavorare puramente con dei testo può bastare la Listview.
Che però non ricordo se ha tutti i metodi della Custom come InsertAt e altri.
 

LucaMs

Expert
Licensed User
Longtime User
Una volta che hai messo tutto in una Sub la richiami passandogli il testo e l'altezza che vuoi e sei a posto.
Se devi lavorare puramente con dei testo può bastare la Listview.
Che però non ricordo se ha tutti i metodi della Custom come InsertAt e altri.
Non solo, me poi dovessi creare lo stesso progetto per le altre due piattaforme, potresti usare lo stesso codice, senza cambiare una virgola.

Inoltre, sul sito ci sono alcune classi che consentono di gestire in modo particolare xCustomListView; ad esempio (piuttosto importante, spesso):
https://www.b4x.com/android/forum/t...extension-for-xcustomlistview.115289/#content
 

LucaMs

Expert
Licensed User
Longtime User
Non solo, me poi dovessi creare lo stesso progetto per le altre due piattaforme, potresti usare lo stesso codice, senza cambiare una virgola.
Non è così, nel caso specifico, in quanto CSBuilder non esiste per B4J (va bene per B4A e B4I).

Ho appena sgobbato come un mulo turco 😄 per creare una soluzione che funzionasse con tutti e tre i linguaggi; soluzione che pubblicherò, oltre ad un nuovo "Wish", e che già prevedo che verrà criticata (ancora di più il Wish), perché in effetti è alquanto complicato creare un B4XFont nei vari linguaggi e gli help contestuali non aiutano.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Non è così, nel caso specifico, in quanto CSBuilder non esiste per B4J (va bene per B4A e B4I).

Ho appena sgobbato come un mulo turco 😄 per creare una soluzione che funzionasse con tutti e tre i linguaggi; soluzione che pubblicherò, oltre ad un nuovo "Wish", e che già prevedo che verrà criticata (ancora di più il Wish), perché in effetti è alquanto complicato creare un B4XFont nei vari linguaggi e gli help contestuali non aiutano.
https://www.b4x.com/android/forum/threads/better-contextual-help-for-b4xfont.138326/post-875764

NOTA: per queste cosette ho perso circa un'ora e tre quarti; giusto giusto il tempo di perdermi l'intera Milan-Lazio :mad: e senza aver ancora cenato.
Mai più, probabilmente 😄


P.S. Peggio: ho dimenticato e perso "Le iene"! (ma potrò vederlo sul sito)
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
E' arrivata l'emoji con faccetta sorpresa; in effetti ogni volta mi sorprendo di quanto io sia fesso 😄, sia perché ho appena scoperto che "in giro", nascosto tra le pieghe del sito, c'è un pezzetto di sorgente che fa la stessa cosa (non messo in una routine con parametri e, soprattutto non pubblicata nel forum "Snippets") ma soprattutto perché dovrei fare come la maggioranza, che fa domande, non pubblica esempi/snippets o altro.

Spero che con l'avanzare della vecchiaia diventerò più furbo 😄 (ed egoista, soprattutto).

Chissà che Erel non metta quel codice, poche righe, nell'help contestuale, in modo da poter fare un veloce copia e incolla; speriamo.
P.S. Ho chiesto di farlo.
 
Last edited:
Top