gpt4 book ai didi

android - getTop() 为 TableLayout 中的所有 View 返回 2

转载 作者:行者123 更新时间:2023-11-30 03:18:26 32 4
gpt4 key购买 nike

我有一个 TableLayout,单元格中有 View 。触摸其中一个 View 时,我尝试使用 view.getTop()。问题是无论我按哪个 View ,这都会返回 2getLeft() 有效 - 它给了我正确的值,但不是 getTop()getBottom() 也以类似的方式运行,但返回的是 122

最佳答案

The problem is that this is returning 2 whichever view I press.

getTop/Left/Right/Bottom()方法是相对于父级的,这意味着返回的值是相对于父级边界的(它成为 subview 坐标系的轴)。 TableLayout 中的单元格 View 有一个 TableRow 作为 parent .那个TableRow的顶部转换为 0通过调用 getTop() 返回的 y 值在其中一个 child 身上。在您的情况下,这是 2,因为您可能在单元格 View 上设置了较小的边距/填充。

So why does the getLeft() return a different value for each dot then?

这没有什么特别之处。 TableRow 的左侧转换为 0 的 x 值,下一个 child 的 x 值为 0 + 前一个 child 的宽度,依此类推。对于高度,你看不到这个,因为你只有一个 child 在那个方向。

下面是与此方法相关的 View 类文档中的一小段引述:

“可以通过调用方法 getLeft() 和 getTop() 来检索 View 的位置。前者返回表示 View 的矩形的左坐标或 X 坐标。后者返回顶部或 Y,表示 View 的矩形的坐标。这些方法都返回 View 相对于其父 View 的位置。例如,当 getLeft() 返回 20 时,这意味着 View 位于 View 右侧 20 个像素其直接父级的左边缘。”

您可以使用 getLocationInScreen/Window 之一方法或者你可以抵消 getTop()带有 getTop() 的单元格 View 的值 parent 的值(value)TableRow获取相对于 TableLayout 的 x,y 值小部件。

关于android - getTop() 为 TableLayout 中的所有 View 返回 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19616547/

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