首页 > 其他分享 >LayoutBuilder(获取父类的宽高)

LayoutBuilder(获取父类的宽高)

时间:2023-12-19 14:35:11浏览次数:27  
标签:width height 获取 child 组件 父类 LayoutBuilder constraints

LayoutBuilder 是 Flutter 中的一个构建组件,用于根据父容器的约束对其子组件进行布局。

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'LayoutBuilder Example',
      home: Scaffold(
        appBar: AppBar(
          title: Text('LayoutBuilder Example'),
        ),
        body: Center(
          child: Container(
            color: Colors.blue,
            child: LayoutBuilder(
              builder: (BuildContext context, BoxConstraints constraints) {
                // 计算子组件的宽度和高度
                double width = constraints.maxWidth / 2;
                double height = constraints.maxHeight / 2;

                return Container(
                  width: width,
                  height: height,
                  color: Colors.red,
                  child: Center(
                    child: Text('Sub Widget'),
                  ),
                );
              },
            ),
          ),
        ),
      ),
    );
  }
}

我们使用 LayoutBuilder 组件来根据父容器的约束动态计算子组件的大小。我们将子组件的宽度和高度都设置为父容器宽度的一半,这样子组件会占据父容器的一四分之一的空间,并且背景色为红色。

标签:width,height,获取,child,组件,父类,LayoutBuilder,constraints
From: https://www.cnblogs.com/xbinbin/p/17899542.html

相关文章

  • windows 获取 磁盘 serialnum
     #include<Windows.h>#include<iostream>#include<iomanip>#include<ntddscsi.h>intmain(){constwchar_t*drivePath=L"\\\\.\\PhysicalDrive0";//设置为磁盘的路径,根据需要更改HANDLEhDevice=CreateFileW(driv......
  • C++ 获取 vector 最大的 3 个数字
    假设现在有一个数组存储了成绩信息,要获得前三名#include<iostream>#include<vector>#include<algorithm>std::vector<int>scores{10,30,90,30,100,20,10,0,30,40,40,70,70};下面这种方法可以将前3名成绩复制到结果里,同时考虑到scores长度小于3的情况。......
  • R语言采集获取58商铺出租转让信息
    前两篇文章给我一个朋友分析出店铺商品以及地址房源信息,后来去看了下店铺房租有点贵,还是毛坯房,要自己装修,本着节约成本的原则。熬了个通宵,给他采集了一些转租商铺数据,因为数据比较多,过于先进不方便展示,我就将我爬虫程序的模版展示给大家观看,希望能帮助大家。在R语言中,你可以使用rve......
  • Python获取服务器IP地址
    一、依赖importsocket二、获取#获取计算机名称hostname=socket.gethostname()#获取本机IPip=socket.gethostbyname(hostname)三、结果......
  • go服务get请求中携带分号(;)时报错,获取不到参数的问题
    前言我们在写get方式的api请求时,有时候会用这样的一种方式携带参数:http://ip:port/a/b?query=key:1;value:2&other=xxx,这里我们注意到query一个字段其实是携带了等子字段的,一个是key,一个是value;这在go1.17版本之前是没有问题的。但是在1.17之后打印警告,在1.20之后,go服务......
  • 【Azure App Service】当App Service中使用系统标识无法获取Access Token时
    问题描述AppSerive上的应用配置了系统标识(SystemIdentity),通过系统标识获取到访问KeyVault资源的AccessToken。但这次确遇见了无法获取到正常的AccessToken。 验证问题1:查看AppService的门户中是否启用了系统标识  2:进入AppService的Kudu站点,查看Environment参数中IDENT......
  • Python获取时间戳
    一、获取时间戳importtimeimportdatetimet=time.time()print(t)#原始时间数据print(int(t))#秒级时间戳print(int(round(t*1000)))#毫秒级时间戳print(int(round(t*1000000)))#微秒级时间戳#输出#16488......
  • 【实验】配置用户自动获取IPv6地址的案例
    原创:厦门微思网络组网需求PC直连Router的接口后可通过协议自动获取IPv6地址,并自动生成默认网关,从而使PC与路由器可以自动连通。具体到该试验中,在路由器使能RA(RouterAdvertisement,路由器通告)后,PC能够根据接收到的RA报文自动配置地址,且能生成指向该路由器的默认路由。编辑图1 配置......
  • js获取当前页面网址
    在JavaScript中,可以使用window.location对象来获取当前页面的网址。以下是几种不同的实现方法:方法一:使用window.location.href varurl=window.location.href;console.log(url);结果:http://localhost/gridsys/Product/PlantQR?puid=8方法二:使用window.location.toStrin......
  • SpringBoot异步任务获取HttpServletRequest
     前言在使用框架日常开发中需要在controller中进行一些异步操作减少请求时间,但是发现在使用@Anysc注解后会出现Request对象无法获取的情况,本文就此情况给出完整的解决方案原因分析@Anysc注解会开启一个新的线程,主线程的Request和子线程是不共享的,所以获取为null在使用spr......