ScrollView แบบซ้อนภายในวิดเจ็ตพาเนล Slidable


9

ฉันมีวิดเจ็ตพาเนลที่สามารถลากเข้าและออกในแนวตั้งจากด้านล่างของหน้าจอ ในวิดเจ็ตพาเนลนั้นมีListViewตัวเลื่อนที่

สิ่งที่ฉันพยายามทำให้สำเร็จคือการให้พาเนลจัดการลากเพื่อเปิดและปิดโดยไม่รบกวน listview ซ้อนกัน เมื่อพาเนลเปิดขึ้น listview จะเลื่อนได้และหาก listview เลื่อนลงขณะที่ด้านบนแล้วพาเนลจะจัดการกับท่าทางแทนและปิด

ชอบมาก

ป้อนคำอธิบายรูปภาพที่นี่

ฉันพยายามเปิด / ปิดการเลื่อนฟิสิกส์ใน ListView ตามตำแหน่งพาเนล แต่กลับกลายเป็นว่าไม่สามารถทำได้

ความคิดใด ๆ :)


คุณลองวิธีแก้ปัญหาที่ฉันให้มาหรือยัง? ฉันหวังว่ามันจะช่วย
Pablo Barrera

@PabloBarrera จบลงบันทึกพฤติกรรมของDraggableScrollableSheetตัวเอง แต่ฉันจะยอมรับคำตอบของคุณ;)
Théo Champion

คำตอบ:


5

DraggableScrollableSheetคุณสามารถบรรลุว่าด้วย

นี่คือตัวอย่างย่อของวิธีใช้:

@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'),
              ),
            ),
          ),
        ),
      ],
    ),
  );
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.