Flutter不常用组件----IntrinsicHeight,IntrinsicWidth

终于有勇气做一些不常用组件的博文,最近行情不景气,大家的工作应当也是不少,笔者也是一样。之前筹备了好久想着做一些不常用的组件分享,一直没付诸于行动。现在打算开始慢慢做起来,各位粉丝如果有是一些使用场景代码繁杂的困惑(考虑是不是有系统组件自己不了解的),又或者已经知道一些组件不太清楚具体使用场景等,欢迎评论或者私信我,我们一起解答学习。

前言

        现实中有没有遇到在一个Row组件中存放多个元素。某一个元素的高度希望根据另一个元素的高度自适应的场景?比如一个可换行的文本元素,另一个是一个高度设计需要“顶天立地”的分割线。

        你会不会通过文本计算来判定高度?还是加载完成之后通过key来获取依赖组件的高度控制分割线的高度展示。现在我们来介绍一个IntrinsicHeight组件来解决这种尴尬的问题。

官方介绍


/// A widget that sizes its child to the child's intrinsic height.
///
/// This class is useful, for example, when unlimited height is available and
/// you would like a child that would otherwise attempt to expand infinitely to
/// instead size itself to a more reasonable height.
///
/// The constraints that this widget passes to its child will adhere to the
/// parent's constraints, so if the constraints are not large enough to satisfy
/// the child's maximum intrinsic height, then the child will get less height
/// than it otherwise would. Likewise, if the minimum height constraint is
/// larger than the child's maximum intrinsic height, the child will be given
/// more height than it otherwise would.
///
/// This class is relatively expensive, because it adds a speculative layout
/// pass before the final layout phase. Avoid using it where possible. In the
/// worst case, this widget can result in a layout that is O(N²) in the depth of
/// the tree.
///
/// See also:
///
///  * [Align], a widget that aligns its child within itself. This can be used
///    to loosen the constraints passed to the [RenderIntrinsicHeight],
///    allowing the [RenderIntrinsicHeight]'s child to be smaller than that of
///    its parent.
///  * [Column], which when used with [CrossAxisAlignment.stretch] can be used
///    to loosen just the height constraints that are passed to the
///    [RenderIntrinsicHeight], allowing the [RenderIntrinsicHeight]'s child's
///    height to be smaller than that of its parent.
///  * [The catalog of layout widgets](https://flutter.dev/widgets/layout/).
class IntrinsicHeight extends SingleChildRenderObjectWidget {/// Creates a widget that sizes its child to the child's intrinsic height.////// This class is relatively expensive. Avoid using it where possible.const IntrinsicHeight({ super.key, super.child });@overrideRenderIntrinsicHeight createRenderObject(BuildContext context) => RenderIntrinsicHeight();
}

翻译如下:
一个小部件,将其子部件的大小调整为子部件的固有高度。

这个类很有用,例如,当可以使用无限高度,并且您想要一个子节点,否则它会尝试无限扩展,而不是将自身大小调整为更合理的高度时。

此小部件传递给其子部件的约束将遵循父部件的约束,因此,如果约束不够大,无法满足子部件的最大固有高度,则子部件获得的高度将低于其他情况。同样,如果最小高度约束大于子节点的最大固有高度,则子节点将获得比其他情况下更高的高度。

这个类的成本相对较高,因为它在最终布局阶段之前添加了一个推测性布局通道。尽可能避免使用它。在最坏的情况下,这个小部件可能导致树的布局深度为0 (N2)。

从官方解释里面可以看出它使用了一个预测醒的布局通道,谨慎使用。他是一个比较昂贵的组件,尽可能避免使用它。

如何使用

//外层,高度根据卡片高度决定
Container(
//继承最外层的高度child: IntrinsicHeight(child: Row(children: [Container(
//设置高度无限大(会根据右侧高度来约束展示喜爱那个会对高度)height: double.infinity,child: "高度依赖部分"),Container(child: Text("内容不固定,高度内部不固定,变化部分")),],),),);

IntrinsicWidth类似,宽度继承最外层的宽度容器组件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/836712.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis经典问题:数据并发竞争

大家好,我是小米!今天我们要聊的话题是在大流量系统中常见的一个问题:数据并发竞争。不管是火车票系统还是微博系统,一旦出现数据并发竞争,都可能导致用户体验下降,甚至系统崩溃。那么,我们该如何解决这个问题呢?让我们一起来深入探讨! 数据并发竞争 当我们谈论大流…

代码随想录:长度最小的子数组相关题目推荐(904、76)

904.水果成篮 题目 你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须…

三. TensorRT基础入门-ONNX注册算子的方法

目录 前言0. 简述1. 执行一下我们的python程序2.转换swin-tiny时候出现的不兼容op的例子3. 当出现导出onnx不成功的时候,我们需要考虑的事情4. unsupported asinh算子5. unsupported deformable conv算子总结参考 前言 自动驾驶之心推出的 《CUDA与TensorRT部署实战…

MR混合现实情景实训教学系统在室内设计课堂上的应用

MR混合现实情景实训教学系统在室内设计课堂上的应用可以带来许多积极的影响,包括提高学生的参与度、增强学生的实践技能、以及提供更真实和全面的学习体验。 首先,MR混合现实情景实训教学系统能够创建出一种沉浸式的环境,使学生能够直接接触到…

EmotiVoice 实时语音合成TTS

参考:https://github.com/netease-youdao/EmotiVoice 测试整体速度可以 docker安装: 运行容器:默认运行了两个服务,8501 一个streamlit页面,另外8000是一个api接口服务 docker run -dp 8501:8501 -p 8250:8000 syq163/emoti-voice:latest ##gpu运行 docker run --gpus a…

前端页面 贴边拖拽 盒子

vue 悬浮球(带自动吸附功能)_vue悬浮球-CSDN博客

windows内存管理-检查内存可用性

在驱动程序开发中,对内存的操作要格外小心。如果某段内存是只读的,而驱动程序试图去写操作,会导致系统的崩溃。同样,当某段内存是不可读的情况下,驱动程序试图去读,同样会导致系统的崩溃。 DDK提供了两个函…

第四届微调——炼丹

学习地址:Tutorial/xtuner/README.md at main InternLM/Tutorial GitHub 笔记 微调是一种在已有的预训练模型基础上,通过使用新的数据对模型进行进一步优化和调整的技术手段。它的目的是使模型能够更好地适应特定的应用场景和任务需求,进一…

基础ArkTS组件:帧动画,内置动画组件,跑马灯组件(HarmonyOS学习第三课【3.6】)

帧动画 帧动画也叫序列帧动画,其原理就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。ArkUI开发框架提供了 ImageAnimator 组件实现帧动画能力,本节笔者介绍一下 ImageAnimator 组件的简单使用。 官方文献 说明 该组件从A…

9. SVG中的text元素

SVG (Scalable Vector Graphics) 提供了强大的文本渲染能力&#xff0c;其中<text>元素是常用 的文本操作的元素。本文将详细介绍<text>标签的基本使用方法&#xff0c;并展示如何通过<tspan>和<textPath>增强文本的表现力。 <text>标签基础 &…

防爆巡检手持终端在燃气巡检作业中的应用

在燃气巡检作业中&#xff0c;安全始终是首要考虑的因素。面对易燃易爆的燃气环境&#xff0c;传统的巡检方式已经难以满足现代安全管理的需求。随着科技的不断进步&#xff0c;防爆巡检手持终端应运而生&#xff0c;成为燃气巡检作业的得力助手。这些终端不仅具备高度的防爆性…

Python实现cookie续期

Python实现网页保持登录状态的技术方案 用来维护网页的登录状态&#xff0c;方法各有利弊。 使用Cookies直接管理 如果你能够访问并管理网站的cookies&#xff0c;你可以直接在请求中发送这些cookies来维持登录状态&#xff0c;而不是依赖于会话机制。这适用于那些登录信息主…

【数轮】数论、质数、最大公约数、菲蜀定理

数学 唯一分解定理 n>2都可以表示为质因数的乘方。 令 n a1b1a2b2 … \dots … a1,b1 … \dots …都是质因数&#xff0c;b1,b2 … \dots …是对应质因数的数量。 调和级数 11/2 1/3 1/4 ⋯ \cdots ⋯ 1/ n 约等于 logn。 证明过程&#xff1a; 1/3 1/4 < (1/2) …

Colab微调LLaMA3模型(大模型的微调)

Colab微调LLaMA3模型 1.使用的数据集 在hugging face上搜索 kigner/ruozhiba-llama3 使用的是弱智吧的数据 2.打开Colab 选择Gpu版本T2就可以了&#xff0c;然后下载unsloth这个微调框架&#xff0c;使用该框架的主要原因在于对硬件要求比较低。 在安装这个前先看一下本文…

css实现上下左右对勾选中状态角标

&#x1f365;左上角 &#x1f365;右上角 &#x1f365;左下角 &#x1f365;右下角: &#x1f365;左上角: .blueBackground {position: relative;border: 1px solid #91c7f3;background: #F0F8FF !important;&:after {content: "";position: absolute;top:…

黏土滤镜教程分享:让你的照片瞬间变身黏土艺术

在数字时代的浪潮中&#xff0c;手机摄影和修图软件成为了我们日常生活中不可或缺的一部分。而近期&#xff0c;一款名为“黏土滤镜”的修图功能火爆全网&#xff0c;让无数摄影爱好者和创意达人为之疯狂。本文将为你详细介绍几款拥有黏土滤镜功能的软件&#xff0c;并附上详细…

RiPro主题美化【支付弹窗底部提示语根据入口不同有不同的提示】ritheme主题美化RiProV2 增加支付提示语,按支付类型不同,入口不同提示语不同的设置

RiPro主题美化【支付弹窗底部提示语根据入口不同有不同的提示】ritheme主题美化RiProV2 增加支付提示语,按支付类型不同,入口不同提示语不同的设置 背景: 接上文:https://www.uu2id.com/827.html 付费组件在以下几个地方会弹出:1)文章隐藏内容付费;2)付费资源下载;3…

实时数据推送——长轮询,短轮询,长连接

短轮询 短轮询是最简单的一种数据推送方式&#xff0c;客户端在固定的时间间隔&#xff08;例如每隔5秒&#xff09;向服务器发送请求&#xff0c;询问是否有更新的数据。服务器立即处理请求并返回数据&#xff0c;不论数据是否真的已经更新。 长轮询 长轮询是对短轮询的改进…

【R语言篇】医学生福音,全球疾病负担数据库GBD 2021即将更新!!!

今天介绍即将于5月16日更新的全球疾病负担数据库GBD 2021&#xff0c;相信数据一经发表&#xff0c;过不了多久pubmed又将涌现一大波疾病负担相关文章。 Global Burden of Disease Study 2021 (GBD 2021) Data Resources | GHDx 在查找GBD相关文献方面&#xff0c;我个人还是比…

六、Web开发与MVC框架(MVC架构与控制器)

在C# Web开发中&#xff0c;MVC&#xff08;Model-View-Controller&#xff09;框架是一种广泛使用的架构模式&#xff0c;特别是在ASP.NET MVC中。MVC架构将应用程序分为三个主要部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器…