Verschachtelte ScrollView im verschiebbaren Bedienfeld-Widget


9

Ich habe ein Bedienfeld-Widget, das vertikal in den unteren Bildschirmbereich hinein- und herausgezogen werden kann. In diesem Bedienfeld-Widget gibt es ein ListViewBildlauf, das gescrollt werden kann.

Ich versuche zu erreichen, dass das Bedienfeld das Ziehen zum Öffnen und Schließen übernimmt, ohne dass die verschachtelte Listenansicht stört. Sobald das Bedienfeld geöffnet ist, kann die Listenansicht gescrollt werden. Wenn die Listenansicht bereits oben nach unten gescrollt wird, übernimmt das Bedienfeld stattdessen die Geste und schließt sie.

Wie so:

Geben Sie hier die Bildbeschreibung ein

Ich habe versucht, die Bildlaufphysik in der ListView basierend auf der Panel-Position zu aktivieren / deaktivieren, aber es stellte sich heraus, dass dies nicht möglich ist.

Irgendwelche Ideen ? :) :)


Haben Sie die Lösung ausprobiert, die ich Ihnen gegeben habe? Ich hoffe, es hilft.
Pablo Barrera

@PabloBarrera Endete und kodierte das Verhalten in DraggableScrollableSheetmir selbst, aber ich werde Ihre Antwort akzeptieren;)
Théo Champion

Antworten:


5

Das können Sie mit erreichen DraggableScrollableSheet.

Hier ist ein kurzes Beispiel, wie Sie es verwenden können:

@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'),
              ),
            ),
          ),
        ),
      ],
    ),
  );
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.