flutter - Flutter如何删除滚动条列表视图顶部的填充
问题描述
首先,对不起我的英语不好。所以我的问题是为什么滚动条顶部有一些填充以及如何删除它?我认为我的代码中的覆盖小部件存在问题,但我找不到问题以及如何解决它。请帮忙,谢谢。PS:我不想使用默认的下拉小部件,因为我不太喜欢这个设计,所以我在其他代码的帮助下制作了一个自定义下拉按钮。
所以这是我的代码:
import 'package:flutter/material.dart';
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
bool dropdownOpen = false;
OverlayEntry dropdown;
dynamic actionKey = LabeledGlobalKey("actionKey");
ScrollController sc = ScrollController();
OverlayEntry createDropdown() {
RenderBox renderBox = actionKey.currentContext.findRenderObject();
Offset offset = renderBox.localToGlobal(Offset.zero);
return OverlayEntry(
builder: (context) {
return Positioned(
left: offset.dx,
width: renderBox.size.width,
top: offset.dy + renderBox.size.height,
height: 230,
child: Material(
elevation: 20,
child: Scrollbar(
isAlwaysShown: true,
controller: sc,
child: ListView.builder(
controller: sc,
padding: EdgeInsets.all(0),
itemCount: 5,
itemBuilder: (BuildContext context, int index){
return Container(
height: 50,
alignment: Alignment.center,
child: Text((index+1).toString())
);
}
)
)
)
);
}
);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(primaryColor: Colors.red),
home: Scaffold(
body: Center(
child: GestureDetector(
key: actionKey,
child: Container(
height: 50,
width: 100,
color: Colors.yellow,
alignment: Alignment.center,
child: Text("Click")
),
onTap: (){
setState((){
if(dropdownOpen){
dropdown.remove();
dropdownOpen = false;
} else {
dropdown = createDropdown();
Overlay.of(context).insert(dropdown);
dropdownOpen = true;
}
});
}
)
)
),
);
}
}
这就是它的样子: 图片
解决方案
推荐阅读
- apache - 如何使用 htaccess 重定向规则?
- c# - C# 代码可在一个脚本中工作,但不能在另一个脚本中工作
- c - GCC 属性到静默未初始化变量警告
- docker - Grafana 可执行文件不起作用 - 找不到错误文件
- python - 从 URL 请求加载 JSON 文件
- javascript - jQuery在if语句下无法识别PHP变量
- excel - 如何使用VBA提取右箭头后的数据?
- jquery - System.ArgumentNullException: '值不能为空。参数名称:实体'我在使用 POST 方法时收到此错误
- android - 如何获取操作栏项目的 id
- javascript - react - useState 用过渡效果改变不透明度的工作古怪吗?