在 flutter 的滚动条上启用快速滚动?
Enabling fast scroll on flutter's Scrollbar?
Android 提供了 fast scroll 对大型列表有用的概念。
我正在用这段代码做一个 flutter 应用程序:
body: Scrollbar(
child: ListView(
…
在iOS和mac上可以拖动滚动条实现同样的快速滚动效果,但是在android上滚动条只是可视的,我可以'与其交互以快速滚动列表。
我的问题是:是否可以在 android 上启用“快速滚动”?
您没有提供滚动控制器。将 scrollController 赋予 ScrollBar 和 ListView
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
final ScrollController _scrollController = ScrollController();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Scrollbar(
isAlwaysShown: true,
controller: _scrollController,
child: ListView.builder(
controller: _scrollController,
itemCount: 100,
itemBuilder: (context, index) {
return Card(
child: ListTile(
title: Text("Item: ${index + 1}"),
)
);
}
),
),
),
),
);
}
}
为了使滚动条工作,您必须设置interactive: true
。请看下面:
Scrollbar(
thickness: 10,
interactive: true,
isAlwaysShown: true,
controller: scrollController,
child:ListView(),
)
(修改了thickness
和isAlwaysShown
以方便测试)
Android 提供了 fast scroll 对大型列表有用的概念。
我正在用这段代码做一个 flutter 应用程序:
body: Scrollbar(
child: ListView(
…
在iOS和mac上可以拖动滚动条实现同样的快速滚动效果,但是在android上滚动条只是可视的,我可以'与其交互以快速滚动列表。
我的问题是:是否可以在 android 上启用“快速滚动”?
您没有提供滚动控制器。将 scrollController 赋予 ScrollBar 和 ListView
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
final ScrollController _scrollController = ScrollController();
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: Scrollbar(
isAlwaysShown: true,
controller: _scrollController,
child: ListView.builder(
controller: _scrollController,
itemCount: 100,
itemBuilder: (context, index) {
return Card(
child: ListTile(
title: Text("Item: ${index + 1}"),
)
);
}
),
),
),
),
);
}
}
为了使滚动条工作,您必须设置interactive: true
。请看下面:
Scrollbar(
thickness: 10,
interactive: true,
isAlwaysShown: true,
controller: scrollController,
child:ListView(),
)
(修改了thickness
和isAlwaysShown
以方便测试)