DraggableScrollableSheet子项在 Flutter 中从工作表中间开始

6rqinv9w  于 2022-11-25  发布在  Flutter
关注(0)|答案(2)|浏览(164)

我在主scaffold中有一个列表视图,并且在条目中添加了一个手势检测器,以显示条目详细信息的底部表单。
这就是工作表的代码:

showModalBottomSheet(
    context: context,
    builder: (context) => SizedBox.expand(
      child: DraggableScrollableSheet(
        builder: (BuildContext context, ScrollController scrollController) {
          return Container(
            color: Colors.red,
            child: ListView.builder(
              itemCount: 2,
              itemBuilder: (BuildContext context, int index) {
                return ListTile(title: Text('text'));
              },
            ),
          );
        },
      ),
    ),
  );

如何使工作表的内容从顶部开始?我试过用Align类封闭列表视图,并将对齐方式设置为topcenter,但结果相同。

kgqe7b3p

kgqe7b3p1#

您应该删除您的SizedBox并传入expand: false来解决您的直接问题。
此外,如果希望ListViewDraggableScrollableSheet一起滚动,则需要设置isScrollControlled: true,并将controller传递给ListView
以下是使用ListView作为子对象的完整示例:

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(home: MyHome()));
}

class MyHome extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('BottomSheet Demo')),
      body: Center(
        child: ElevatedButton(
          child: Text('Show DraggableScrollableSheet'),
          onPressed: () async {
            final result = await showModalBottomSheet(
              context: context,
              isScrollControlled: true,
              builder: (_) => DraggableScrollableSheet(
                expand: false,
                builder: (context, ScrollController controller) {
                  return ListView.builder(
                    controller: controller,
                    itemCount: 100,
                    itemExtent: 50,
                    itemBuilder: (context, index) {
                      return Center(child: Text('Item $index'));
                    },
                  );
                },
              ),
            );
            print(result);
          },
        ),
      ),
    );
  }
}
stszievb

stszievb2#

可拖动可滚动工作表(初始子级大小:1.0、施工员:(BuildContext上下文,ScrollController滚动控制器){

相关问题