Italian Problemi conversione da Activity a B4XPages

LucaMs

Expert
Licensed User
Longtime User
a deve scorrere come 'abbiamo' (cioè hai fatto su xCards) solo che con quella soluzione applicata al DRAWER mi si apre un mondo, in quanto posso realizzare tutti i menu che voglio e parametrizzarli lavorando di fantasia immagini, testi, bottoni, ..ecc.. senza essere vincolato ad uno spazio predefinito
Se ho capito bene, non dovresti fare altro che creare un drawer come nell'esempio di Erel (io non l'ho scaricato, adesso, quindi non so come sia), caricare nel drawer - la parte sinistra, una xCustomListView e riempirla come fatto in xCardList, in cui però non avrai tutti item uguali tra loro, creandoli caricherai il layout specifico per quell'item della xCLV
 

LucaMs

Expert
Licensed User
Longtime User
Vendi il progetto?
All'epoca (è già passata una vita) chiedevo se interessasse e il sondaggio diede risposta negativa.

Giusto ieri stavo pensando di rimetterci mano, per farlo funzionare almeno in B4J (con questo c'è il grosso problema con le B4XPages, in quanto ogni pagina è un nuovo Form, a differenza di B4A, in cui hai una sola Activity per tutte le pagine) e... nel frattempo, in "attesa" di aver trovato soluzioni, vendere quella libreria così com'è, quindi per B4A, per pochi euro. Libreria B4XLib, quindi con codice sorgente.

Ma ero indeciso e ancora non avevo scritto il post :)
 

LucaMs

Expert
Licensed User
Longtime User
Se ho capito bene, non dovresti fare altro che creare un drawer come nell'esempio di Erel (io non l'ho scaricato, adesso, quindi non so come sia), caricare nel drawer - la parte sinistra, una xCustomListView e riempirla come fatto in xCardList, in cui però non avrai tutti item uguali tra loro, creandoli caricherai il layout specifico per quell'item della xCLV
Se mi dai il tempo di rinfrescarmi e pranzare, ti faccio un esempio di quanto sopra. Se non me lo dai... me lo prendo lo stesso 😂
 

LucaMs

Expert
Licensed User
Longtime User
Se mi dai il tempo di rinfrescarmi e pranzare, ti faccio un esempio di quanto sopra
Esempiuccio, basato su quello di Erel, per cui il drawer è solo nella seconda B4XPage.
Come detto, nel drawer viene caricata una xCustomListView e in questa due tipi diversi di item (ovviamente puoi crearne altri diversi).

Un po' al volo, item scarsini - devo litigare col wifi della mia lan :mad:
 

Attachments

  • ThreePagesExampleLM.zip
    216.9 KB · Views: 135
Last edited:

SimonAndroid

Active Member
Licensed User
Longtime User
Questo è proprio l'esempio che cercavo, da questo esempio è facile produrne altri ora sono 'felice' come nell'esempio...
Ovviamente tutta la mia stima e ti ringrazio ancora @LucaMs per l'aiuto che mi stai dando....
 

Attachments

  • felice.jpg
    felice.jpg
    36.4 KB · Views: 114

SimonAndroid

Active Member
Licensed User
Longtime User
Ora che ho raggiunto il primo obbiettivo ho trovato subito un altro scoglio, una cosa che sembrava semplice, sono riuscito a mettere delle icone nell'ActionBar a mettere il menu orrendo con i puntini ... e a questo punto sembrava tutto in discesa, quando è nato l'ennesimo problema cambiare il colore della 'ActionBar' sia come testo che come background e risiamo al palo.. provato varie versioni ma a me non funziona, come questo esempio..
Cambio Colore:
    ' Set Title of page
    ' with a specific Textcolor  -- don't require manifest and it's fine form me
    Dim cs                         As CSBuilder
    Dim ThemeTextColor         As Int
    Dim ActionBarCaption     As String
    ThemeTextColor             = xui.Color_White
    ActionBarCaption            = "Home"
    cs.Initialize.Size(22).Color(ThemeTextColor).Append(ActionBarCaption).PopAll

    B4XPages.SetTitle(Me,cs)   
    
     ' Set BackGround of ActionBar  -- without manifest...
     'Work fine in B4a  but Don't know if is right on B4I
    Dim cd As ColorDrawable
    cd.Initialize(xui.Color_RGB(0,93,192),0)
    B4XPages.GetManager.ActionBar.RunMethod("setStackedBackgroundDrawable", Array(cd))
    

     'Set HomeIcon of ActionBar  -- without manifest...
    'Work fine in B4a  but Don't know if is right on B4I

    Dim bd As BitmapDrawable
    bd.Initialize(LoadBitmap(File.DirAssets,"myGoHomeIcon.png"))
    B4XPages.GetManager.ActionBar.RunMethod("setDisplayHomeAsUpEnabled", Array(True))
    B4XPages.GetManager.ActionBar.RunMethod("setHomeAsUpIndicator", Array(bd))
    
    
     'Set HomeIcon of ActionBar  -- without manifest...
    'Work fine in B4a  but Don't know if is right on B4
    'Force visibility of goHome Icon
    B4XPages.GetManager.ActionBar.RunMethod("setDisplayShowHomeEnabled", Array(True))
 

LucaMs

Expert
Licensed User
Longtime User
Non vorrei farti ammattire 😄 ma... io metterei tutto in full screen, facendo da me "toolbar" varie (diciamo Header e/o Footer), con semplici Panel (B4XView) nei quali posso mettere ciò che mi pare.

Come dice il proTERVIO: "Chi fa da sé, fa... da sé" 😂
 

SimonAndroid

Active Member
Licensed User
Longtime User
Ci avevo pensato, però credevo che con B4XPages fosse più facile, poi leggendo in qua e la ho capito che non ero solo e nonostante le tonnellate di post letti alla fine ne ho trovato uno del 04-08-2021 è ho detto è fatta... ...quasi... 🤬
peccato che a me non funzioni, forse Venerdì 13 non mi ha portato bene! 😭
 

SimonAndroid

Active Member
Licensed User
Longtime User
A parte la soluzione, di togliere la ActionBar e mettere tutto full screen (la cosa sicuramente migliore), l'unica cosa che funziona veramente secondo me un po' obsoleta è modificare il manifest ed effettivamente ho trovato come deve essere modificato allego la mia eredità ai posteri.. (forse sto impazzendo ... 🤪 ..)
Aggiunta al MANIFEST:
CreateResource(values-v20, theme.xml,
<resources>
    <style name="LightTheme" parent="@android:style/Theme.Material.Light">
        <item name="android:colorPrimary">@color/actionbar</item>
        <item name="android:colorPrimaryDark">@color/statusbar</item>
        <item name="android:textColorPrimary">@color/textColorPrimary</item>
        <item name="android:navigationBarColor">@color/navigationBar</item>
        <item name="android:colorAccent">@color/navigationBar</item>
        <item name="android:alertDialogTheme">@style/AlertDialogCustom</item>
    </style>

    <style name="AlertDialogCustom" parent="@android:style/Theme.Material.Light.Dialog.Alert">
      <item name="android:colorPrimary">@color/actionbar</item>
      <item name="android:colorAccent">@color/navigationBar</item>
    </style>

    <style name="button" parent="@android:style/Widget.Material.Button">
        <item name="android:background">@color/ColorBackButton</item>
        <item name="android:textColor">@color/textColorPrimary</item>
    </style>
</resources>)
comunque questa collaborazione mi piace molto, io utilizzo altri linguaggi di programmazione e a volte aspetto giorni/settimane per avere delle risposte nella maggior parte delle volte pressoché inutili.. sei veramente una 'bella persona' @LucaMs, ho un abbonamento che pago per un linguaggio francese (non voglio fare pubblicità) con un canone all'anno per avere delle risposte che a volte non funzionano neanche bene.. In futuro ti proporrò un abbonamento annuale in modo da poterti ricompensare del tempo che stai dedicandomi per risolvere i miei problemi insegnandomi cose nuove.. grazie ancora..
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
forse Venerdì 13 non mi ha portato bene!
A me, veramente, non è che giovedì 9, sabato 22, domenica 3, ... abbiano mai portato tanta fortuna 😂

(forse sto impazzendo ... 🤪 ..)
Forse? Hai dei dubbi? E' la fine che prima o poi fanno tutti i programmatori 😂

sei veramente una 'bella persona' @LucaMs,
Ti ringrazio; e tu sei fin troppo gentile.

ho un abbonamento che pago per un linguaggio francese (non voglio fare pubblicità)
Eh, ma nemmeno puoi lasciarmi/ci con la curiosità. Puoi scriverlo, purtroppo non ci leggono in moltissimi.

In futuro ti proporrò un abbonamento annuale in modo da poterti ricompensare del tempo che stai dedicandomi per risolvere i miei problemi insegnandomi cose nuove..
Cerco solo di dare una mano, per quanto nelle mie possibilità, come fanno anche tanti altri in questo bel sito (queste ultime due parole fanno pensare al mare :)).
Anche perché purtroppo ho parecchio più tempo libero di voi :(

A parte la soluzione, di togliere la ActionBar e mettere tutto full screen (la cosa sicuramente migliore), l'unica cosa che funziona veramente secondo me un po' obsoleta è modificare il manifest
Sì, grazie al manifest si possono fare molte cose, benché poco conosciute e quindi non facili da applicare, ma è ovviamente limitato al solo Android, per questo sarebbe meglio, ad esempio in questo caso, "far da sé".


Grazie ancora per le tue belle parole!
 

SimonAndroid

Active Member
Licensed User
Longtime User
Salve allego il progetto xCardList modificato B4XPages (grazie all'aiuto di @LucaMs), vorrei fare un'ultima domanda (si fa per dire..) ho messo nella CustomListView un campo di B4XFloatTextField che viene correttamente visualizzato, domanda:
1 - perché il bottone di spunta non funziona, per confermare il campo, mentre la X per annullare si..
2 - altra cosa, come faccio a far scorrere la CLV in modo che scrolli il campo successivo e non venga coperto dalla tastiera, cioè posso avere sempre il focus sulla maschera in modo che la lista esegua lo scroll in modo sequenziale lasciando sempre la visibilità del campo e non rimanga nascosto o sotto la tastiera o sotto lo schermo.. Vorrei costruire una maschera per inserimento di campi diversi (tessto, bottoni, liste scelte, ..ecc..) che però non stanno tutti in una pagina ma deve scrollare per permettere l'inserimento l'oggetto CLV è la soluzione ottimale, o ci sono altri oggetti da utilizzare..
Grazie a tutti
 

Attachments

  • xCardList.zip
    225 KB · Views: 125

LucaMs

Expert
Licensed User
Longtime User
Usando la libreria IME2 (ma anche IME) risolvi il problema 2 (vedi progetto allegato).

Per il numero 1... per ora non mi ci sono dedicato 😄. Cmq, accade anche a me.
 

Attachments

  • xCardListLM.zip
    225.1 KB · Views: 126

LucaMs

Expert
Licensed User
Longtime User
Per il numero 1... per ora non mi ci sono dedicato 😄. Cmq, accade anche a me.
CREDO - non ho ancora provato - che sia perché viene considerata come l'unica B4XFloatTextField nella schermata, in quanto è effettivamente l'unica nel Panel.
Cioè, siccome nel Panel non c'è un'altra View che possa ricevere il focus, non viene svuotata (e nascosti i due "button").
 
Top