Programmare applicazioni mobili con flutter

Pubblicità
Infatti, era la soluzione più semplice. Non c'avevo pensato.

Ora sto impazzendo sull'oggetto CircleAvatar che mi dà una forma di cerchio dove all'interno ci metto un'icona.
Invece della forma circolare voglio fare un quadrato con bordi arrotondati.
C'è un widget già predisposto a questo o devo costruirmelo io?

Grazie
 
Per ora non ha importanza, tanto è solo a livello grafico.

Ora mi serve una cosa un po' più complessa: usare in dart la funzione strftime di php.

Ho i due parametri che do anche a php, formato e secondi (dall'epoca unix).

Come posso fare?

Grazie
 
Perfetto, così ho un'oggetto DateTime contenente la data ricevuta dal json.

Ma ora come faccio ad elaborare una stringa secondo un formato stabilito? Il formato in questione è "%d/%m/%y %k:%M" preso da strftime di php.
Inoltre mi vorrei salvare la stringa del formato (so farlo in dart) per poi usarla ogni volta che devo elaborare una data (questo non so farlo).

Come posso fare?

Grazie
 
Documentazione, documentazione https://pub.dev/documentation/intl/latest/intl/DateFormat-class.html

Basta cercare nella documentazione e si trovano le risposte. Ogni classe ha tutta una serie di metodi che permettono di svolgere svariate attività. E cose tipo formattare una data, trasformarla in stringa, ecc... fanno parte delle attività standard. E hanno opportuni metodi o sono implicitamente gestite dal linguaggio.
 
Ci sono riuscito, anche con la traduzione in italiano delle parole come i giorni della settimana e i mesi. ?

Fin'ora ho perso quasi 2 ore per una GridView che voglio costruire, ma come la fai e la fai, ricevi sempre errore.
La ListView la riesco a fare benissimo. Ma ora la cosa è più complessa.

La pagina in oggetto contiene vari elementi in una ListView, e ogni elemento contiene informazioni quindi ho creato Column, di cui all'interno ci sono oggetti RichText, immagini e una GridView.

Praticamente l'albero dei widget è così:
ListView (25 elementi)
-> Column
-> RichText, Image, RichText, GridView (10 elementi)

L'analizzatore non mi dà problemi, per questo penso il problema sia qualcosa di resa grafica.

Come posso fare?

Grazie
 
Da lì si capisce che Column è allo stesso livello degli altri. Spero proprio non sia così. Altrimenti l'errore è grossolano.
 
L'elemento ListView lo costruisco con il metodo builder(). Ogni elemento della lista è una Column.
Ogni Column contiene 4 elementi, tra cui una GridView che a sua volta contiene 10 o più elementi.

Non so impastare bene questi widget grafici.

Come posso rimediare?

Grazie
 
Prova. Riprova. Itera. Un layout così complesso è comunque sbagliato a priori. E' una ListView, mica un doppio cheeseburger.
Purtroppo alcune volte prendo certe cantonate che non riesco a risolvere da solo, come le frazioni con numeri grandi in espressioni matematiche. ?
Fai uno schema, un disegno di come vorresti il layout finale e ti diciamo.
Allora il codice per la pagina (route) è questo:
JavaScript:
class PagPiani extends StatelessWidget {
    _elenco = Lista di alcuni oggetti tipizzati;
    
  @override
  Widget build(BuildContext context) {
  // qui ci sono scaffold -> body -> container
      return ListView.separated(
              separatorBuilder: (_, i) => Divider(height: 1.0),
              itemBuilder: (_, i) => PianoCompleto(
                zonaUrbana: _elenco[i].zonaUrbana,
                numeroTel: _elenco[i].numeroTel,
                giorni: _elenco[i].giorni,
              ),
              itemCount: _elenco.length,
            );
  }
}
E per mostrare l'oggetto che sto costruendo:
JavaScript:
class PianoCompleto extends StatelessWidget {
  @required
  final String zonaUrbana;
  @required
  final String numeroTel;
  @required
  final List<SingoloGiorno> giorni;
  PianoCompleto({
    this.zonaUrbana,
    this.numeroTel,
    this.giorni,
  });

  @override
  Widget build(BuildContext context) => Column(
        mainAxisAlignment: MainAxisAlignment.start,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: <Widget>[
          // Non ho ancora fatto RichText
          Text('Piano di ' + zonaUrbana),
          // Immagine
          Text('Telefono: ' + numeroTel),
          GridView.builder(
              gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                  crossAxisCount: MediaQuery.of(context).orientation == Orientation.portrait ? 2 : 3),
              itemCount: giorni.length,
              // Per ora non ho ancora costruito il sotto-oggetto SingoloGiorno
              itemBuilder: (_, i) => Text('ciao'),
          ),
        ],
      );
}
E scrivendo solo "ciao", mi dà errore. Non oso immaginare se costruisco l'intero oggetto che mi serve.
Voglio costruire l'oggetto PianoCompleto così:
mio-ogg-widget.webp
So creare gli oggetti RichText, ListTile e Image, ma alla griglia ho problemi.

Come posso risolvere?

Grazie
 
Voglio costruire l'oggetto PianoCompleto così
Un elemento di una ListView non è così complesso, è come i file che vedi in Esplora Risorse...

Vuoi usare la ListView perchè vuoi creare tanti elementi fatti in quel modo?
Non conosco flutter ma direi che ci vuole un container diverso, possibilmente molto più semplice ma che permette di contenere oggetti complessi.
 
Non è stato facile, ma ho risolto con Wrap.

Ora cambiamo argomento: voglio lavorare con le immagini.

Ci sono app come WhatsApp che salvano le immagini delle chat in una cartella del dispositivo, ma altre come Facebook che scaricano le immagini, le fanno visualizzare, ma non le salvano nel dispositivo.

Io voglio fare la seconda: dal mio sito web scaricare alcune immagini quando richiesto, farle vedere in una route (magari anche con ingrandimento), ma non salvarle nella cartella. Però quando l'utente ritorna su quella route, se possibile vorrei fare il caricamento da cache, invece di riscaricarle dal sito.

Cosa mi consigliate?

Grazie
 
Pubblicità
Pubblicità
Indietro
Top