SAP UI5 应用里 FlexBox 控件的设计原理

news2024/11/25 22:30:46

sap.m.FlexBox 控件为 flexible box layout 构建容器。VBox 控件为垂直的框布局(vertical flexible box layout)构建容器。 VBox 是一种使用的控件,因为它只是一个定制化的 FlexBox 控件。

VBox 包含 items 聚合,从 FlexBox 继承而来。

HBox 控件为水平框布局(horizontal flexible box layout)构建容器。

HBox 有一个名叫 LayoutData 的聚合,用来定义此控件在布局内使用时的布局约束(layout constraints).

LayoutData 类是 typed classes,必须与嵌入布局相匹配。

删除这段代码之后,应用的布局就被破坏了:

两个按钮所在的区域和 3D Viewer 显示的区域混淆在一起了:

growFactor:确定剩余可分配空间时弹性项目(flex item)的灵活性(flexibility)。

一些影响布局的属性需要在 FlexBox 控件中设置。其他属性可以附加到通过 layoutData 聚合放置在 FlexBox 内的控件。例如,布局方向在 FlexBox 中设置如下:

var oMyFlexbox = new sap.m.FlexBox({
  items: [
    new sap.m.Button({text: "Button 1"}),
    new sap.m.Button({text: "Button 2"})
  ],
  direction: "Column"
});

最后的效果:

我们也可以通过 order 属性显式指定按钮的顺序:

var oMyFlexbox = new sap.m.FlexBox({
  items: [
    new sap.m.Button({
      text: "Button 1",
      layoutData: new FlexItemData({order: 2})
    }),
    new sap.m.Button({text: "Button 2"})
  ]
});

上面的代码,虽然 Button 1 先出现,但其通过 layoutData 设置的 order 属性值为 2,因此出现在 Button 2 之后:

FlexBox 控件是 CSS 中 flexible box layout 的包装器。控件呈现器(control renderer)在适当的 HTML 元素上设置 CSS 属性(包括必要时的前缀版本)。 实际的布局是由浏览器完成的。

FlexBox 布局具有子元素的布局方向。 默认方向是行,行在阅读方向上水平排列。 这定义了主轴。 这种情况下的横轴是垂直的。

开发人员可以将布局方向属性更改为 Column,这将导致垂直主轴和水平交叉轴。

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

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

相关文章

字符串函数

注意:MySQL中,字符串的位置是从1开始的。 ASCII(S) 返回字符串S中的第一个字符的ASCII码值. 与第一个字符后面的其他字符无关。 SELECTASCII(Abcdfsf) FROM DUAL;CHAR_LENGTH(s) 返回字符串s的字符数。作用与CHARACTER_LENGTH(s)相同。 SELECTCHAR_LEN…

生信基础知识

1.生物数据库分类 (1)核酸数据库(2)蛋白质数据库(3)专用数据库 核酸数据库分为一级核酸数据库和二级核酸数据库 蛋白质数据库分为一级蛋白质数据库和二级蛋白质数据库 一级蛋白质数据库又分为蛋白质序列…

【Redis】应用问题解决

一、缓存击穿 1、什么叫缓存击穿 系统中某个查询次数很多的热点key,在某个时刻过期,而此时又正好有大量并发请求查询这个key,但是缓存的重建还没有完成,这样,就会有大量请求涌向后端数据库,使得其压力骤增…

爱了,阿里P9开源分享内部Java核心开发手册(2022版)覆盖P5到P8

这个世界唯一不变的就是变化, IT圈子不外如是。计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术。因此,作为一名程序开发人员,我们要通过不断的学习来提高自己的技能。 所以持续学习的脚步自…

基于C++11实现的阻塞队列(BlockQueue)

思路: 生产者消费者模型如图,多个生产者线程和多个消费者线程共享同一固定大小的缓冲区,它们的生产和消费符合以下规则: 生产者不会在缓冲区满的时候继续向缓冲区放入数据,而消费者也不会在缓冲区空的时候&#xff0c…

AQS源码解读

retrantlock: A、B、C3个线程,假设A线程lock()时候拿到了锁,state被A设置成了1。 static final class NonfairSync extends Sync {private static final long serialVersionUID 7316153563782823691L;/*** Performs lock. Try immediate b…

喜欢写笔记的博主为什么要使用猿如意?

🔥🔥🔥猿如意🔥🔥🔥 喜欢写笔记的博主为什么要使用猿如意? markdown笔记 测 评 分 享 猿如意实战测评猿如意传送门什么是猿如意?猿如意使用感受markdown笔记实战测评总结猿如意传…

数据结构---红包分配算法

红包分配算法错误解法二倍均值法JAVA实现线段切割法确定每一条子线段的长度JAVA实现问题如下: 所有人抢到的金额之和要等于红包金额,不能多也不能少。每个人至少抢到1分钱。要保证红包拆分的金额尽可能分布均衡,不要出现两极分化太严重的情况…

【C函数】函数详解

函数前言一、函数是什么二、C语言中函数的分类(一)库函数1.printf类2.strcpy类3.math类4.概念5.小知识6.总结(二)自定义函数1.概念2.函数的组成3.例子1(求出两个数中的最大值)4.例子2(交换两个整…

mac释放“其他”内存空间的解决方法

官方解释Mac设备储存空间中的“其他”数据包含这不可移除的移动资源,例如,Siri 语音、字体、词典、不可移除的日志和缓存、聚焦索引以及系统数据如钥匙串和 CloudKit 数据库、系统无法删除缓存的文件等之外,还包含了一些无法识别的文件。当“…

ROS2 基础概念 节点

ROS2 基础概念 节点1. Nodes2. 重映射3. 环境设置3.1. ROS_DOMAIN_ID3.2. ROS_LOCALHOST_ONLY1. Nodes 每个节点应负责单个模块用途(例如,一个节点用于控制车轮电机,一个用于控制激光测距仪等) 可以通过话题、服务、操作或参数向…

C++-----模板

举个例子,如果要你交换两个数值,你会怎么做呢? ————你肯定会说,那就写一个Swap交换函数吧! 没错!Swap函数确实可以实现交换,但如果我想让你同时进行不能类型的数值呢,比如floa…

F - Permutation Distance(去绝对值数据结构)[AtCoder Beginner Contest 283]

题目如下&#xff1a; 题目链接 题解 or 思路&#xff1a; 去掉绝对值后 有 2242 \times 2 4224 中情况 虚线括起来的是需要维护的&#xff0c;其他直接枚举就行! 对于 pi<pjp_i < p_jpi​<pj​ 的情况&#xff0c;设我们维护的式子为 xxx 那我们每次枚举查找的范围…

hadoop生产调优之HDFS—集群压测

在企业中非常关心每天从 Java 后台拉取过来的数据&#xff0c;需要多久能上传到集群&#xff1f;消费者关心多久能从 HDFS 上拉取需要的数据&#xff1f; 为了搞清楚 HDFS 的读写性能&#xff0c;生产环境上非常需要对集群进行压测。 HDFS 的读写性能主要受网络和磁盘影响比较大…

【matplotlib】3-绘制统计图形

文章目录绘制统计图形1.柱状图1.1 应用场景--定性数据的分布展示1.2 绘制原理2.条形图3.堆积图3.1 堆积柱状图3.2 堆积条形图4.分块图4.1 多数据并列柱状图4.2 多数据平行条形图5.参数探索6.堆积折线图、间断条形图和阶梯图6.1 用函数stackplot()绘制堆积折线图6.2 用函数broke…

Matlab 方位角计算

文章目录 一、简介二、实现代码三、实现效果一、简介 方位角是指从某点的正北方向起顺时针旋转到某目标点方向的水平夹角,角度范围(0~360)。如下所示: 令atn= a r c t a n ( Δ Y A B / Δ X

9. SpringMvc拦截器

1. 拦截器概念和作用 拦截器&#xff08;Interceptor&#xff09;是一种动态拦截方法调用的机制&#xff0c;在SpringMVC中动态拦截控制器方法的执行作用&#xff1a; 在指定的方法调用前后执行预先设定的代码阻止原始方法的执行总结&#xff1a;增强 核心原理&#xff1a;AOP…

[CG笔记]绘制图元:三角形

学习资料是Github的一个项目Tiny renderer or how OpenGL works: software rendering in 500 lines of code 本文对应原教程的第二课的部分内容 原教程重在思路&#xff0c;主要内容是以推导为主&#xff0c;所以这里还是记录思路和为代码做注释 知乎也有人给出了中译版&…

ARM uart stdio 的移植

一、uart stdio的移植1 1. 什么是 stdio (1) #include <stdio.h> (2) stdio&#xff1a;standard input output&#xff0c;标准输入输出 (3) 标准输入输出就是操作系统定义的默认的输入和输出通道。一般在 PC 机的情况下&#xff0c;标准输入指的是键盘&#xff0c;标…

C语言——操作符详解(下)

C语言——操作符详解&#xff08;下&#xff09;一、赋值操作符二、复合赋值符三、单目操作符单目操作符介绍四、 关系操作符五、逻辑操作符六、条件操作符七、逗号表达式八、下标引用、函数调用和结构成员8.1 [ ] 下标引用操作符8.2 ( ) 函数调用操作符8.3访问一个结构的成员一…