flutter屏幕尺寸计算问题

var kwidth = MediaQuery.of(context).size.width;
    var kheight = MediaQuery.of(context).size.height;
    var paddingT = MediaQuery.of(context).padding.top;
    var paddingB = MediaQuery.of(context).padding.bottom;
针对没有appBar: AppBar(title: Text("A"),),。这就是显示区域的全屏
width: kwidth, 
height: kheight,
整个屏幕宽高就是显示页面宽高
return Scaffold(
      backgroundColor: Colors.blue,
      body: Stack(
        children: [
          Positioned(
            child: Container(
                width: kwidth, 
                height: kheight, 
                color: Colors.grey,
            ),
          ),
        ],
      ),
    );
针对有appBar: AppBar(title: Text("A"),),。
width: kwidth,
height: kheight - paddingT - kToolbarHeight,  
显示页面高度需要减状态栏高度paddingT
显示页面高度需要减导航栏高度kToolbarHeight
return Scaffold(
      backgroundColor: Colors.blue,
      appBar: AppBar(
        title: Text("A"),
      ),
      body: Stack(
        children: [
          Positioned(
            child: Container(
              width: kwidth,
              height: kheight - paddingT - kToolbarHeight,
              color: Colors.grey,
            ),
          ),
        ],
      ),
    );
有时候还需要考虑底部安全区域
height: kheight - paddingT - kToolbarHeight - paddingB,  
SafeArea组件帮我们剪掉了paddingT和paddingB
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容