我有一个很长的文本,当用户进入我的页面时,我需要默认显示滚动条。
目前,直到用户单击文本后才会显示栏,这不是一个好的行为,因为用户可能会在没有注意到有一些未读文本的情况下离开页面。
我的代码:
return Scaffold(
body: Padding(
padding: const EdgeInsets.all(15.0),
child: Center(
child: Column(
children: <Widget>[
Image.asset(
"assets/images/logo.png",
height: 200.0,
),
SizedBox(
height: 40,
),
Expanded(
child: Scrollbar(
child: SingleChildScrollView(
child: Text("Long Text Here ...",
textDirection: TextDirection.rtl,
style: TextStyle(fontSize: 17.2),
),
),
),
),
SizedBox(
height: 50,
),
Row(
children: <Widget>[
Expanded(
child: RaisedButton(
child: Text("Continue"),
onPressed: () {
MaterialPageRoute route = MaterialPageRoute(
builder: (BuildContext context) => MainPage());
Navigator.of(context).push(route);
},
),
),
SizedBox(
width: 20.0,
),
RaisedButton(
child: Text("Close"),
onPressed: () {
exit(0);
},
),
],
)
],
),
),
),
);
}```
最佳答案
更新答案 2023 年 4 月
从 v2.9.0-1.0.pre 开始,isAlwaysShown
已弃用,您应该使用 thumbVisibility
代替。检查jayjw更完整的答案:https://stackoverflow.com/a/71357052/9777674
原始答案 2020 年 6 月
从 Flutter 版本 1.17 开始,在 Scrollbar
上,您可以将 isAlwaysShown
设置为 true
,但您必须设置相同的 controller
用于您的 Scrollbar
和 SingleChildScrollView
(这也适用于任何其他可滚动的 Widget)。
请记住,要使滚动条
可见,必须有足够的项目可以滚动。如果没有,滚动条
将不会显示。
完整的工作示例:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: MyWidget(),
),
);
}
}
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
final _scrollController = ScrollController();
@override
Widget build(BuildContext context) {
return Scaffold(
body: Padding(
padding: const EdgeInsets.all(15.0),
child: Center(
child: Column(
children: <Widget>[
// ...
Expanded(
child: Scrollbar(
controller: _scrollController, // <---- Here, the controller
isAlwaysShown: true, // <---- Required
child: SingleChildScrollView(
controller: _scrollController, // <---- Same as the Scrollbar controller
child: Text(
"Long Text Here ...",
textDirection: TextDirection.rtl,
style: TextStyle(fontSize: 17.2),
),
),
),
),
// ...
],
),
),
),
);
}
}
关于text - 始终显示滚动条 - Flutter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54963284/