Flutter 如何在 Listview.builder、SingleChildScrollView 等可滚动小部件中隐藏滚动条(拇指)
Flutter how to hide a scrollbar(thumb) in scrollable widgets like Listview.builder, SingleChildScrollView, etc
有没有办法从 SingleChildScrollView
和 Listview.builder
中删除滚动条?最近更新后,滚动时自动出现(平台Windows)。
我试过这个解决方案:
NotificationListener<ScrollNotification>(
onNotification: (_) => true,
child: ...,
);
并且还尝试将我的小部件树包装在带有 isAlwaysShown 和控制器的滚动条小部件中,但这两种变体都不起作用。
要在 desktop/web 上隐藏滚动条,将您的小部件树包装在具有 ScrollConfiguration.of(context).copyWith(scrollbars: false),
行为的 ScrollConfiguration 小部件中
ScrollConfiguration(
behavior: ScrollConfiguration.of(context).copyWith(scrollbars: false),
child: ...,),
或者您可以将 scrollBehavior 添加到 MaterialApp 小部件
class NoThumbScrollBehavior extends ScrollBehavior {
@override
Set<PointerDeviceKind> get dragDevices => {
PointerDeviceKind.touch,
PointerDeviceKind.mouse,
PointerDeviceKind.stylus,
};
}
return MaterialApp(
debugShowCheckedModeBanner: false,
scrollBehavior: NoThumbScrollBehavior().copyWith(scrollbars: false),
home: MainWindow(),
);
将可滚动小部件包装在 ScrollConfiguration
中
ScrollConfiguration(
behavior: ScrollConfiguration.of(context).copyWith(scrollbars: false),
child: ListView(...)
)
实现此目的最简单快捷的方法是在滚动条小部件上设置 thickness: 0
。它看起来像这样:
Scrollbar(
thickness: 0,
child: ...
)
有没有办法从 SingleChildScrollView
和 Listview.builder
中删除滚动条?最近更新后,滚动时自动出现(平台Windows)。
我试过这个解决方案:
NotificationListener<ScrollNotification>(
onNotification: (_) => true,
child: ...,
);
并且还尝试将我的小部件树包装在带有 isAlwaysShown 和控制器的滚动条小部件中,但这两种变体都不起作用。
要在 desktop/web 上隐藏滚动条,将您的小部件树包装在具有 ScrollConfiguration.of(context).copyWith(scrollbars: false),
行为的 ScrollConfiguration 小部件中 ScrollConfiguration(
behavior: ScrollConfiguration.of(context).copyWith(scrollbars: false),
child: ...,),
或者您可以将 scrollBehavior 添加到 MaterialApp 小部件
class NoThumbScrollBehavior extends ScrollBehavior {
@override
Set<PointerDeviceKind> get dragDevices => {
PointerDeviceKind.touch,
PointerDeviceKind.mouse,
PointerDeviceKind.stylus,
};
}
return MaterialApp(
debugShowCheckedModeBanner: false,
scrollBehavior: NoThumbScrollBehavior().copyWith(scrollbars: false),
home: MainWindow(),
);
将可滚动小部件包装在 ScrollConfiguration
中ScrollConfiguration(
behavior: ScrollConfiguration.of(context).copyWith(scrollbars: false),
child: ListView(...)
)
实现此目的最简单快捷的方法是在滚动条小部件上设置 thickness: 0
。它看起来像这样:
Scrollbar(
thickness: 0,
child: ...
)