ScrollView lồng nhau trong widget bảng điều khiển Slidable


9

Tôi có một widget bảng điều khiển có thể được kéo theo chiều dọc vào và ra từ dưới cùng của màn hình. Trong tiện ích bảng điều khiển đó, có một ListViewcái có thể cuộn được.

Những gì tôi đang cố gắng đạt được là, có bảng điều khiển kéo để mở và đóng mà không có sự lắng nghe listview lồng nhau. Khi bảng điều khiển được mở, listview có thể cuộn được và nếu listview được cuộn xuống trong khi đã ở trên cùng, bảng điều khiển sẽ xử lý cử chỉ thay thế và đóng lại.

Thích như vậy:

nhập mô tả hình ảnh ở đây

Tôi đã cố gắng bật / tắt vật lý cuộn trên ListView dựa trên vị trí Bảng điều khiển nhưng hóa ra không thể như vậy.

Có ý kiến ​​gì không? :)


Bạn đã thử giải pháp tôi đưa cho bạn chưa? Tôi hy vọng nó sẽ giúp.
Pablo Barrera

@PabloBarrera Đã kết thúc, mã hóa lại hành vi trong DraggableScrollableSheetbản thân tôi, nhưng tôi sẽ chấp nhận câu trả lời của bạn;)
Nhà vô địch Théo

Câu trả lời:


5

Bạn có thể đạt được điều đó với DraggableScrollableSheet .

Dưới đây là một ví dụ nhanh về cách bạn có thể sử dụng nó:

@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'),
              ),
            ),
          ),
        ),
      ],
    ),
  );
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.