Syncfusion Flutter DataGrid列宽调整功能失效问题求助
Flutter Web中Syncfusion DataGrid列宽调整失效问题
环境信息
- Flutter版本:3.7.7
- Dart版本:2.19.4
- Syncfusion DataGrid包版本:
syncfusion_flutter_datagrid: ^21.1.35 - 运行环境:Chrome 107.0.5304.110(官方正式版64位)、Ubuntu 22
问题描述
在Flutter Web上使用Syncfusion DataGrid实现列宽调整功能,已在组件中配置allowColumnsResizing: true、columnResizeMode: ColumnResizeMode.onResize,并设置列宽模式为ColumnWidthMode.fill,但拖动列边界时无法调整列宽,功能完全失效。演示效果如下:

完整代码
import 'package:flutter/material.dart'; import 'package:syncfusion_flutter_datagrid/datagrid.dart'; class TestFile extends StatefulWidget { @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State<TestFile> { final List<Data> _data = [ Data('John', 'Doe', 30), Data('Jane', 'Doe', 25), Data('Bob', 'Smith', 40), Data('Alice', 'Johnson', 35), ]; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text('SfDataGrid Column Resizing Example')), body: SfDataGrid( source: _DataSource(data: _data), columnWidthMode: ColumnWidthMode.fill, allowColumnsResizing: true, columnResizeMode: ColumnResizeMode.onResize, columns: <GridColumn>[ GridColumn(columnName: 'firstName', label: const Text('First Name')), GridColumn(columnName: 'lastName', label: const Text('Last Name')), GridColumn(columnName: 'age', label: const Text('Age')), ], ), ); } } class _DataSource extends DataGridSource { final List<Data> data; _DataSource({required this.data}); @override List<DataGridRow> get rows => data.map((d) => DataGridRow(cells: [ DataGridCell<String>(columnName: 'firstName', value: d.firstName), DataGridCell<String>(columnName: 'lastName', value: d.lastName), DataGridCell<int>(columnName: 'age', value: d.age), ])).toList(); @override DataGridRowAdapter buildRow(DataGridRow row) { return DataGridRowAdapter( cells: row.getCells().map<Widget>((dataCell) { return Container( alignment: Alignment.center, padding: const EdgeInsets.all(8), child: Text(dataCell.value.toString()), ); }).toList(), ); } } class Data { final String firstName; final String lastName; final int age; Data(this.firstName, this.lastName, this.age); }
内容的提问来源于stack exchange,提问作者Abbas Jafari
相关产品推荐
相关产品推荐

