Flutter TextField 阻止在 Table 上水平滚动

问题描述 投票:0回答:0

我有一个需要垂直和水平滚动的表格。我设法通过将表格包装在 2 个滚动视图中来做到这一点。我的问题是,如果用户试图通过在文本字段上滑动来水平滚动,则水平滚动不起作用。

然而,我可以在标题上或文本字段外滑动时水平滚动。

有没有办法禁用文本视图上的手势。我尝试在文本字段上设置 scrollPhysics: NeverScrollableScrollPhysics() 无济于事。

在文本字段上滑动时垂直滚动效果很好。

class TableExample extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Table Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(),
        body: Card(
          child: Padding(
            padding: const EdgeInsets.all(8.0),
            child: SingleChildScrollView(
              scrollDirection: Axis.horizontal,
              child: Table(
                defaultColumnWidth: const FixedColumnWidth(75),
                border: TableBorder.all(color: Colors.grey),
                children: <TableRow>[
                  TableRow(children: [
                    Text('1'),
                    Text('2'),
                    Text('3'),
                    Text('4'),
                    Text('5'),
                    Text('6'),
                    Text('7'),
                    Text('8'),
                    Text('9'),
                    Text('10'),
                  ]),
                  TableRow(
                    children: <Widget>[
                      TextField(
                        scrollPhysics: NeverScrollableScrollPhysics(),
                      ),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                    ],
                  ),
                  TableRow(
                    children: <Widget>[
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                      TextField(),
                    ],
                  ),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
}
flutter dart textfield singlechildscrollview
© www.soinside.com 2019 - 2024. All rights reserved.