这些方法之间实际上有什么契约?我想,layout() 调用 setX(),但不知何故,layout() 在调用 setX() 后停止工作。
view.layout(256, 256, 512, 512);
view.setX(0);
view.layout(256, 256, 512, 512);
但 View 停留在 {0, 256}。为什么会这样?
最佳答案
view.layout(256,256,512,512)
表示: 为 View 及其所有后代分配大小和位置 这是布局机制的第二阶段。 (首先是测量)。在此阶段,每个父级对其所有子级调用布局来定位它们。这通常使用存储在测量 pass() 中的子测量来完成。 派生类不应覆盖此方法。带有子项的派生类应该覆盖 onLayout。在那种方法中,他们应该在他们的每个 child 上调用布局。 参数 升 左侧位置,相对于父级 吨 顶部位置,相对于父级 r 正确的位置,相对于 parent b 底部位置,相对于父级
同时 view.getX()
此 View 的视觉 x 位置,以像素为单位。这相当于 translationX 属性加上当前的 left 属性。 返回 此 View 的视觉 x 位置,以像素为单位。
希望这是有道理的...
关于android - View 的 setX()、setY() 和 layout(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27741083/