If you put ListView somewhere inside Scaffold having no appBar, ListView has top padding. There is no padding if appBar is present. There is no padding if you specify EdgeInsets.zero padding for ListView explicitly. See following code snipped for example
...
return new MaterialApp(
home: new Scaffold(
// appBar: new AppBar(
// title: new Text("test"),
// ),
body: new Column(
children: <Widget>[
new Container(
child: new Center(
child: new Text("some top widget")
),
decoration: new BoxDecoration(
color: Colors.red,
),
height: 100.0,
),
new Expanded(
child: new ListView(
children: items,
// padding: EdgeInsets.zero, // explicit padding as a workaround
),
),
],
),
),
);
...
See screenshot:

Flutter Doctor:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (on Linux, locale en_US.UTF-8, channel master)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[✓] Android Studio (version 3.0)
[!] IntelliJ IDEA Ultimate Edition (version 2017.3)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.20.1)
[✓] Connected devices
If you put
ListViewsomewhere insideScaffoldhaving noappBar,ListViewhas top padding. There is no padding ifappBaris present. There is no padding if you specifyEdgeInsets.zeropadding forListViewexplicitly. See following code snipped for example... return new MaterialApp( home: new Scaffold( // appBar: new AppBar( // title: new Text("test"), // ), body: new Column( children: <Widget>[ new Container( child: new Center( child: new Text("some top widget") ), decoration: new BoxDecoration( color: Colors.red, ), height: 100.0, ), new Expanded( child: new ListView( children: items, // padding: EdgeInsets.zero, // explicit padding as a workaround ), ), ], ), ), ); ...See screenshot:
Flutter Doctor: