热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

UGUI简单易懂理解LayoutElement组件

LayoutElement组件需要结合LayoutGroup的ControlChildSize功能使用,以Height为例;假设父节点A的Height100,其下有两个Child(

Layout Element组件需要结合Layout Group的Control Child Size功能使用,以Height为例;

假设父节点A的Height=100,其下有两个Child(a、b)



Min Height:最小高度



  • 实际高度

Preferred Height:期望高度



  • 空间足够分配时,Height=Math.Max(MinHeight,PreferredHeight),即如果PreferredHeight
  • 全部Child的PreferredHeight之和,不能超过父节点高度;

案例:a的Preferred Height=100,b的Preferred Height=100,那么就会按比重分配,a、b的Height均为50,即Height=A_Height * a_PreferredHeight/(a_PreferredHeight + b_PreferredHeight)



  • 如果同时设置Min Height和Preferred Height,两种情况:



  1. 全部Child的Preferred Height之和,小于父节点高度,则相安无事,a、b各按自己的Preferred Height设置,但Preferred Height低于Min Height,以Min Height为准;

  2. 全部Child的Preferred Height之和,大于父节点高度,按计算公式Height=A_Height * (a_PreferredHeight+a_MinHeight)/(a_PreferredHeight + a_MinHeight + b_PreferredHeight),为什么把PreferredHeight和MinHeight叠加计算,我也不知道;

Flexible Height:剩余空间填满比重



  • 全部Child的Preferred Height之和,小于父节点高度,即父节点还有空间没有占满,就会把剩余空间按Flexible Height比重分配;

案例:a的Preferred Height=50、Flexible Height=1,b的Preferred Height=30、Flexible Height=3,则还剩余20高度,20高度再按1/4和3/4比例分配给a和b,最终a_Height:50+5=55,b_Height:30+15=45,很好理解;



  • 全部Child的Preferred Height之和,大于父节点高度,没有剩余空间,Flexible Height不起作用;



既然是做文字游戏,排版可是重点技巧,Layout Group和Layout Element梳理之后,排版算是比较得心应手了!



推荐阅读
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文探讨了如何在不重新加载URL的情况下,触发WebView的PictureListener.onNewPicture()方法,以实现页面的重新绘制或渲染。 ... [详细]
  • 本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ... [详细]
  • 优化 Android 按钮状态下的背景和文本颜色变化
    本文介绍如何通过 Android 的 Selector 实现按钮在不同状态下(如按压)的背景和文本颜色动态变化。我们将详细讲解实现步骤,并提供完整的代码示例。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 本文详细介绍了如何在 Android 开发中高效地管理和使用资源,包括本地资源和系统资源的访问方法。通过实例和代码片段,帮助开发者更好地理解和应用资源管理的最佳实践。 ... [详细]
  • Qt QTableView 内嵌控件的实现方法
    本文详细介绍了在 Qt QTableView 中嵌入控件的多种方法,包括使用 QItemDelegate、setIndexWidget 和 setIndexWidget 结合布局管理器。每种方法都有其适用场景和优缺点。 ... [详细]
  • 本文介绍了SVD(奇异值分解)和QR分解的基本原理及其在Python中的实现方法。通过具体代码示例,展示了如何使用这两种矩阵分解技术处理图像数据和计算特征值。 ... [详细]
  • 本文详细探讨了Android Activity中View的绘制流程和动画机制,包括Activity的生命周期、View的测量、布局和绘制过程以及动画对View的影响。通过实验验证,澄清了一些常见的误解,并提供了代码示例和执行结果。 ... [详细]
  • 在 Android 开发中,通过 Intent 启动 Activity 或 Service 时,可以使用 putExtra 方法传递数据。接收方可以通过 getIntent().getExtras() 获取这些数据。本文将介绍如何使用 RoboGuice 框架简化这一过程,特别是 @InjectExtra 注解的使用。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 本文详细介绍了如何在Android 4.4及以上版本中配置WebView以实现内容的自动高度调整和屏幕适配,确保中文显示正常,并提供代码示例。 ... [详细]
  • ListView简单使用
    先上效果:主要实现了Listview的绑定和点击事件。项目资源结构如下:先创建一个动物类,用来装载数据:Animal类如下:packagecom.example.simplelis ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • 本文详细介绍了 Android 开发中 layout_gravity 属性的使用方法及其在不同布局下的效果,旨在帮助开发者更好地理解和利用这一属性来精确控制视图的布局。 ... [详细]
author-avatar
涐們的故事丘
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有