【发布时间】:2019-05-28 06:58:44
【问题描述】:
我正在尝试将 Java 项目转换为 Kotlin。我收到一个非常奇怪的编译时错误,函数 until 是“未解决的引用”,为什么无法识别此函数 until?
fun renderChildrenToRight(canvas: Canvas, startIndex: Int, stopIndex: Int) {
val itemRight = nodePosition!!.x + nodeRectLimits.right
val itemExternalPaddingWidth = getRenderAttribute(AttributeExternalPaddingWidth, AttributeDefaultExternalPadding)
val itemTop = nodePosition!!.y + nodeRectLimits.top
val itemExternalPaddingHeight = getRenderAttribute(AttributeExternalPaddingHeight, AttributeDefaultExternalPadding)
val childItemsSize = getChildItemsSize(startIndex, stopIndex)
var nextItemTop = itemTop + childItemsSize / 2
val x = itemRight + itemExternalPaddingWidth
for (i in startIndex until stopIndex) {
val currentNode = _children[i]
val bulletDesiredHeight = currentNode.desiredHeightWithChildren
val y = nextItemTop - bulletDesiredHeight / 2
currentNode.setNodePosition(x, y)
currentNode.renderWithChildren(canvas, BulletRenderStyle.ToTheRight)
nextItemTop -= bulletDesiredHeight + itemExternalPaddingHeight
}
}
这是我的旧 Java 方法:
public void renderChildrenToRight(Canvas canvas, int startIndex, int stopIndex) {
int itemRight = getNodePosition().x + getNodeRectLimits().right;
int itemExternalPaddingWidth = getRenderAttribute(AttributeExternalPaddingWidth, AttributeDefaultExternalPadding);
int itemTop = getNodePosition().y + getNodeRectLimits().top;
int itemExternalPaddingHeight = getRenderAttribute(AttributeExternalPaddingHeight, AttributeDefaultExternalPadding);
int childItemsSize = getChildItemsSize(startIndex, stopIndex);
int nextItemTop = itemTop + childItemsSize / 2;
int x = itemRight + itemExternalPaddingWidth;
for (int i = startIndex; i < stopIndex; i++) {
Node currentNode = _children.get(i);
int bulletDesiredHeight = currentNode.getDesiredHeightWithChildren();
int y = nextItemTop - bulletDesiredHeight / 2;
currentNode.setNodePosition(x, y);
currentNode.renderWithChildren(canvas, BulletRenderStyle.ToTheRight);
nextItemTop -= bulletDesiredHeight + itemExternalPaddingHeight;
}
【问题讨论】:
-
until 是 Kotlin 标准库中的函数,而不是关键字。你的类路径中有标准库吗?
-
其实有一个类似的问题,而且我收到的回复基本上说的是原始回复中的内容。我们应该将其标记为重复吗?我应该接受答案还是不接受?谢谢你让我知道
until是一个函数而不是一个关键字,很有趣。问题还是解决了。 -
@Drocchio 如果您愿意,您可以接受答案,它可能会有所帮助。谁偶然发现了你的问题。不过,我会投票决定将其关闭为重复项,因为它使指向具有更多答案的站点的链接更加可见。
标签: android kotlin android-gradle-plugin