ScrollView bersarang di dalam widget panel Slidable

9

Saya memiliki widget panel yang dapat diseret masuk dan keluar secara vertikal dari bagian bawah layar. Di widget panel itu, ada ListViewyang dapat digulir.

Apa yang saya coba capai adalah, memiliki panel yang menangani hambatan untuk membuka dan menutup tanpa mengganggu tampilan daftar tampilan. Setelah, panel terbuka, tampilan daftar menjadi dapat digulir dan jika tampilan daftar digulir ke bawah saat sudah di bagian atas, panel menangani gerakan itu dan menutup.

Seperti itu:

masukkan deskripsi gambar di sini

Saya mencoba untuk mengaktifkan / menonaktifkan scrolling fisika pada ListView berdasarkan posisi Panel tetapi ternyata tidak mungkin seperti itu.

Ada ide? :)

Juara Théo
sumber
Sudahkah Anda mencoba solusi yang saya berikan kepada Anda? Saya harap ini membantu.
Pablo Barrera
@PabloBarrera Berakhir, pengodean ulang perilaku dalam DraggableScrollableSheetdiri saya, tetapi saya akan menerima jawaban Anda;)
Théo Champion

Jawaban:

5

Anda dapat mencapainya dengan DraggableScrollableSheet.

Berikut ini adalah contoh cepat bagaimana Anda dapat menggunakannya:

@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'),
              ),
            ),
          ),
        ),
      ],
    ),
  );
}
Pablo Barrera
sumber