gpt4 book ai didi

java - layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans) 方法中的 offsets.length 或 spans.length 是什么?

转载 作者:行者123 更新时间:2023-12-01 08:45:33 24 4
gpt4 key购买 nike

这是我所做的一些研究,下面的答案是@StanislavL 给我的

查看教程http://java-sl.com/editor_kit_tutorial_views.html

关于方法

protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans)

事实上它定义了子元素的位置和跨度。让我们考虑一个段落的layoutMajorAxis。所以我们布局段落的行targetSpan 是我们想要实现的空间量(在我们的例子中是段落高度,它可以是例如页面高度或表格单元格高度)。让我们考虑简单的情况,高度是 JEditorPane 的宽度 100 像素。因此,我们应该计算每行的开始位置(偏移量)以及需要多少空间(跨度)。轴是Y_AXIS

所以如果我们例如为段落调用 super.layoutMajorAxis ,然后将偏移量更改为 5、10、15 等。我们将有行重叠。

但是如果我们考虑将layoutMajorAxis用于段落的行(例如,我们的文本包含粗体字,因此该行有3个子元素)。

在本例中,targetSpan 是所有者段落的宽度,偏移量是每个元素的起点 span 是每个文本元素的大小。

问题: 1.offsets.length 方法是否像 array.length 方法那样给出偏移量“数组”中“元素”的数量(第一个“元素”的索引为 0)或者是offset[]数组的总和。例如,按照链接上的示例,Y 轴上的偏移量为 {10,30,50},这样 offsets.length = 10+30+50 即 90?或者它会根据所指的特定 subview 而变化?

2.如果我的主轴是 y 轴,在此方法中,此特定方法的跨度也会引用 y 轴吗?如果是这样,那么x轴上的偏移量可以改变,因此x轴的偏移量是否会在layoutMinorView()方法中处理?

欢迎指正。提前致谢。

最佳答案

偏移量和跨度数组大小由 subview 的数量定义。

假设段落有 3 行文本。那么 offsets 和 spans 数组的长度都是 3。

您应该定义偏移量(每行的位置以像素为单位)。通常第一个偏移量从 0 开始(如果没有边距)。

跨度反射(reflect)每个 subview 的大小(同样以像素为单位)。

对于段落,假设您有 3 个相等的行,高度=12。无边距。

所以在调用之后

protected void layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans)

应返回偏移量 [0, 12, 24] 和跨度 [12, 12, 12]。

如果例如第二行包含高度为 20(较大字体)的文本片段,偏移量和跨度应为

偏移量 [0, 12, 32] 和跨度 [12, 20, 12]。

关于java - layoutMajorAxis(int targetSpan, int axis, int[] offsets, int[] spans) 方法中的 offsets.length 或 spans.length 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45185641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com