ScrollView nidificato all'interno del widget Pannello scorrevole


9

Ho un widget pannello che può essere trascinato verticalmente dentro e fuori dalla parte inferiore dello schermo. In quel widget del pannello, c'è un file ListViewche è scorrevole.

Quello che sto cercando di ottenere è, facendo in modo che il pannello gestisca il trascinamento per l'apertura e la chiusura senza che la visualizzazione elenco nidificata interferisca. Una volta, il pannello è aperto, la visualizzazione elenco diventa scorrevole e se la visualizzazione elenco viene fatta scorrere verso il basso mentre è già in alto, il pannello gestisce invece il gesto e si chiude.

Così:

inserisci qui la descrizione dell'immagine

Ho cercato di abilitare / disabilitare la fisica di scorrimento su ListView in base alla posizione del pannello, ma non è stato possibile farlo in quel modo.

Qualche idea ? :)


Hai provato la soluzione che ti ho dato? Spero possa essere d'aiuto.
Pablo Barrera,

@PabloBarrera Alla fine, ricodificando il comportamento in DraggableScrollableSheetme stesso, ma accetterò la tua risposta;)
Théo Champion

Risposte:


5

Puoi raggiungerlo con DraggableScrollableSheet.

Ecco un breve esempio di come puoi usarlo:

@override
Widget build(BuildContext context) {
  return Scaffold(
    body: Stack(
      children: <Widget>[
        Center(child: Text('Some content')),
        DraggableScrollableSheet(
          minChildSize: 0.2,
          initialChildSize: 0.2,
          builder: (context, scrollController) => Container(
            color: Colors.lightBlueAccent,
            child: ListView.builder(
              controller: scrollController,
              itemCount: 20,
              itemBuilder: (context, index) => SizedBox(
                height: 200,
                child: Text('Item $index'),
              ),
            ),
          ),
        ),
      ],
    ),
  );
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.