Flutter 纵横轴滚动条
Flutter Scrollbar in vertical and horizontal axis
我的 flutter 项目中有两个滚动条用于滚动数据 table。这是代码。
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
width: MediaQuery.of(context).size.width * (1 / 2),
height: MediaQuery.of(context).size.height * (1 / 2),
child: Scrollbar(
isAlwaysShown: true,
controller: _controllerOne,
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
controller: _controllerOne,
child: Scrollbar(
controller: _controllerTwo,
isAlwaysShown: true,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
controller: _controllerTwo,
child: DataTable(
...
),
),
))))));
}
这两个滚动条工作正常。但我不能同时看到他们两个。我的意思是,如果我首先在垂直方向上编写带有 scrollDirection 的滚动条,就像;
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
width: MediaQuery.of(context).size.width * (1 / 2),
height: MediaQuery.of(context).size.height * (1 / 2),
child: Scrollbar(
isAlwaysShown: true,
controller: _controllerOne,
child: SingleChildScrollView(
**scrollDirection: Axis.vertical,**
controller: _controllerOne,
child: Scrollbar(
controller: _controllerTwo,
isAlwaysShown: true,
child: SingleChildScrollView(
**scrollDirection: Axis.horizontal,**
controller: _controllerTwo,
child: DataTable(
...
),
),
))))));
}
如果我首先在水平方向上写带有 scrollDirection 的滚动条,就像;
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
width: MediaQuery.of(context).size.width * (1 / 2),
height: MediaQuery.of(context).size.height * (1 / 2),
child: Scrollbar(
isAlwaysShown: true,
controller: _controllerOne,
child: SingleChildScrollView(
**scrollDirection: Axis.horizontal,**
controller: _controllerOne,
child: Scrollbar(
controller: _controllerTwo,
isAlwaysShown: true,
child: SingleChildScrollView(
**scrollDirection: Axis.vertical,**
controller: _controllerTwo,
child: DataTable(
...
),
),
))))));
}
当我滚动到最后时,我可以看到两个方向的另一个滚动条。
但是当显示 table 时,我需要同时看到它们。
有解决办法吗?
任何需要解决方案的人,
https://pub.dev/packages/adaptive_scrollbar#multiple-scrollbars
使用这个包。
(感谢 MuratWeny)
也许此软件包还可以帮助您轻松自定义 拇指 和 水平和垂直滚动轨道
我的 flutter 项目中有两个滚动条用于滚动数据 table。这是代码。
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
width: MediaQuery.of(context).size.width * (1 / 2),
height: MediaQuery.of(context).size.height * (1 / 2),
child: Scrollbar(
isAlwaysShown: true,
controller: _controllerOne,
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
controller: _controllerOne,
child: Scrollbar(
controller: _controllerTwo,
isAlwaysShown: true,
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
controller: _controllerTwo,
child: DataTable(
...
),
),
))))));
}
这两个滚动条工作正常。但我不能同时看到他们两个。我的意思是,如果我首先在垂直方向上编写带有 scrollDirection 的滚动条,就像;
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
width: MediaQuery.of(context).size.width * (1 / 2),
height: MediaQuery.of(context).size.height * (1 / 2),
child: Scrollbar(
isAlwaysShown: true,
controller: _controllerOne,
child: SingleChildScrollView(
**scrollDirection: Axis.vertical,**
controller: _controllerOne,
child: Scrollbar(
controller: _controllerTwo,
isAlwaysShown: true,
child: SingleChildScrollView(
**scrollDirection: Axis.horizontal,**
controller: _controllerTwo,
child: DataTable(
...
),
),
))))));
}
如果我首先在水平方向上写带有 scrollDirection 的滚动条,就像;
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Container(
width: MediaQuery.of(context).size.width * (1 / 2),
height: MediaQuery.of(context).size.height * (1 / 2),
child: Scrollbar(
isAlwaysShown: true,
controller: _controllerOne,
child: SingleChildScrollView(
**scrollDirection: Axis.horizontal,**
controller: _controllerOne,
child: Scrollbar(
controller: _controllerTwo,
isAlwaysShown: true,
child: SingleChildScrollView(
**scrollDirection: Axis.vertical,**
controller: _controllerTwo,
child: DataTable(
...
),
),
))))));
}
当我滚动到最后时,我可以看到两个方向的另一个滚动条。 但是当显示 table 时,我需要同时看到它们。
有解决办法吗?
任何需要解决方案的人,
https://pub.dev/packages/adaptive_scrollbar#multiple-scrollbars
使用这个包。
(感谢 MuratWeny)
也许此软件包还可以帮助您轻松自定义 拇指 和 水平和垂直滚动轨道