flutter_ListView_顶部的灰色区

在使用Listview时候,需要注意ListView默认会有一个padding,当页面内仅有一个ListView时,顶部状态栏会出现一个灰色的区域,如下图

image.png

对应的代码如下:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.purple,
      ),
      home: MyHome(),
    );
  }
}
class MyHome extends StatelessWidget {
  final String _url = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fp6.qhimg.com%2Ft01336ac635fa90a230.jpg";
  const MyHome({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        children: [
          Container(
            height: 20,
            color: Colors.pink,
          ),
          Image.network(_url),
        ],
      ),
    );
  }
}

如果想去掉这块灰色,则需要重新对ListView的padding重新赋值,将padding值的顶部距离改为0,

padding: EdgeInsets.only(top: 0),

完整代码

 @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        padding: EdgeInsets.only(top: 0),
        children: [
          Container(
            height: 20,
            color: Colors.pink,
          ),
          Image.network(_url),
        ],
      ),
    );
  }
image.png

这样就不会显示灰色块了,同理,在其他地方,如drawer等其他控件中也可以做这样的修改

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容