我有一个分页的数据表,我正在努力使它可以在Flutter网站上垂直和水平滚动条滚动。
这样地:
Two directional scrollbar gif
我设法使用以下代码使其在一定程度上发挥作用:
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final _verticalScrollController = ScrollController();
final _horizontalScrollController = ScrollController();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Data Table'),
),
body: SizedBox(
width: 600,
height: 600,
child: Scrollbar(
thumbVisibility: true,
controller: _verticalScrollController,
child: SingleChildScrollView(
controller: _verticalScrollController,
scrollDirection: Axis.vertical,
child: Scrollbar(
scrollbarOrientation: ScrollbarOrientation.bottom,
controller: _horizontalScrollController,
child: PaginatedDataTable(
header: const Text('Orders Table'),
controller: _horizontalScrollController,
columns: const [
DataColumn(label: Text('Sales Order')),
DataColumn(label: Text('Sold to Party')),
DataColumn(label: Text('Party Name')),
DataColumn(label: Text('Status')),
DataColumn(label: Text('Currency')),
DataColumn(label: Text('Order Type')),
DataColumn(label: Text('Creation Date')),
DataColumn(label: Text('Total Net Amount')),
],
source: _DataSource(data: sampleOrders),
),
),
),
),
),
);
}
}
现在它显示了垂直滚动条,但水平滚动条不会显示,除非我先用触控板滚动,然后它会显示并可以使用,但这在电脑上不起作用(因为没有触控板),我希望它从一开始就可见,这样用户就知道它可以滚动,如果可能的话,固定底部滚动条,这样它就可以在不向下滚动的情况下可见。
我认为部分问题在于,无论我是否放置滚动条,PaginatedDataTable都有某种滚动机制。
我尝试了其他堆栈溢出解决方案,但最终要么出现错误,要么出现相同的结果。
我该怎么解决这个问题?