vaadin - 在 Vaadin 中为 Sizeable 对象设置 widthUnit/heightUnit
问题描述
对于一个相当大的对象(https://vaadin.com/api/framework/7.7.3/com/vaadin/server/Sizeable.html),我们分别使用 getWidth() 和 getHeight() 获得宽度和高度,然后单位通过 getWidthUnit() 和 getHeightUnit()。如何设置宽度/高度单位?
编辑:所以,我问的原因是因为我有一个面板,我正在开发一个自动滚动到某一行的功能。Scrollable 接口只提供像素方面的 setScrollTop,所以我想做类似的事情:
panel.setScrollTop(lineNumber/totalLines * heightOfPanelInPixels)
为此,我计划使用 SizeReporter 插件给我“heightOfPanelInPixels”,但我不确定我能否保证高度以像素为单位。如果不是,我需要一些方法来转换单位。
另外,我问了关于设置单位的问题,因为我认为这只是一个通用的东西:就像我可以为所有 Sizeables 设置单位以报告,比如英寸或像素
解决方案
px
除了将所有大小设置为来自服务器的值之外,实际上没有任何方法可以实现您想要做的事情。对于任何其他类型的尺寸定义,以像素为单位的实际尺寸将取决于只有浏览器跟踪的许多不同因素。此外,没有任何机制可以在解析实际大小时将它们传回给服务器。
您可能想试试这个插件,它可以在服务器上提供所选组件的大小:https ://vaadin.com/directory/component/sizereporter 。
下面的旧答案:
有两种方法可以在任一方向上设置大小。它们都导致完全相同的最终结果——这只是表达相同意图的两种不同方式。
以高度为例,有一个setHeight(String)
方法需要一个 CSS 定义,例如20px
or 3.5em
。此方法使用方便,您想直接从代码中设置硬编码大小。
另一种方法将大小拆分为数字大小和单独的单位:setHeight(float, Unit)
例如setHeight(20, Unit.PX)
。如果你想用大小进行计算,这种方法更实用,例如使用setHeight(2 * getHeight(), getHeightUnit())
.
设置和获取宽度也以完全相同的方式工作。
推荐阅读
- c# - 如何动态替换 json 附带的属性?
- json - 状态元素没有出现在带有 react-tooltip 的反应简单地图上
- javascript - 如何在 javascript 中使用 hapi/joi 框架验证包含特定类型对象的数组?
- here-api - 可以在此处的地图中设置位置精度指示器吗?
- c# - 正则表达式允许数字、破折号、逗号
- python-3.x - 如何通过对 36x60 大小的数据进行训练的神经网络预测不同的数据?
- php - 如何取消设置 Laravel 块中的引用变量传递?
- vb.net - 代理授权标头在 HttpWebRequest 中不起作用,以防对 URL 的 Rest 请求
- oracle - 对任何子表行的更新将整个父表锁定在 oracle
- laravel - Moodle 自动登录插件 - 如何将用户引导至特定课程?