当前位置: 首页> 房产> 建材 > 网站哪家好_汕头seo计费管理_百度百家号_微信群免费推广平台

网站哪家好_汕头seo计费管理_百度百家号_微信群免费推广平台

时间:2025/7/9 19:37:00来源:https://blog.csdn.net/qq_22626987/article/details/145965638 浏览次数:0次
网站哪家好_汕头seo计费管理_百度百家号_微信群免费推广平台

一个聊天气泡的基本结构是一张Image作为背景,上面叠加一个文字组件,随着文本内容的增加,背景图片会跟着扩张
在这里插入图片描述
在这里插入图片描述
而想要达成这种效果,需要分别在Image和Text上添加组件

1. 对于背景的Image

在这里插入图片描述
需要VerticalLayoutGroup和ContentSizeFitter,这两个组件缺一不可,且ContentSizeFitter的Vectical Fit需要设置为Preferred Size

2. 对于Text

在这里插入图片描述
需要ContentSizeFitter调整自身大小

3. 原理探究

为什么Imgae上必须有VerticalLayoutGroup和ContentSizeFitter这两个组件?首先看下两个组件的说明
在这里插入图片描述
在这里插入图片描述
从字面上能看到,垂直布局组能够确定当前布局组自身的最小高度或偏好高度,而内容大小适配器是根据布局元素的最小或偏好值来改变宽高的

接下来查看源码

4. 先看VerticalLayoutGroup

在这里插入图片描述
方法都在LayoutRebuilder中调用
在这里插入图片描述
但改变自身属性的是CalculateLayoutInputHorizontal和CalculateLayoutInputVertical这两个方法

继续深入
在这里插入图片描述
此方法会“沿给定轴计算此布局元素的布局元素属性”
在这里插入图片描述
以上是DeepSeek的解释,其中对于combinedPadding的计算就是组件上的Padding属性
在这里插入图片描述
继续深入
在这里插入图片描述

在这里插入图片描述
此方法会将计算出来的属性保存下来

4. 再看ContentSizeFitter

主要改变方法为这两个
在这里插入图片描述
即依旧在LayoutRebuilder中调用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
继续深入,主要看LayoutUtility.GetMinSize和LayoutUtility.GetPreferredSize这两个方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到,在计算最终布局属性时,传入的是e.minHeight和e.preferredHeight,而e是一个ILayoutElement,正好LayoutGroup系列的组件都是ILayoutElement
在这里插入图片描述

在LayoutGroup中,preferredHeight指向另一个方法
在这里插入图片描述
在这里插入图片描述
取的就是LayoutGroup自身存储的数据

5. 总结

LayoutGroup类的组件会根据子物体不断该改变其最小或偏好数据(如果是LayoutElement组件的话,值是固定不变的),然后ContentSizeFitter会获取到这些数据,进行最终的宽高计算

关键字:网站哪家好_汕头seo计费管理_百度百家号_微信群免费推广平台

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: