视图的 setX()、setY() 和 layout()

View's setX(), setY() and layout()

那些方法之间究竟有什么约定?我想,layout() 调用 setX(),但不知何故,layout() 在调用 setX() 后停止工作。

view.layout(256, 256, 512, 512);
view.setX(0);
view.layout(256, 256, 512, 512);

但视图停留在 {0, 256}。为什么会这样?

 view.layout(256,256,512,512) 

表示: 为视图及其所有后代分配大小和位置 这是布局机制的第二阶段。 (首先是测量)。在此阶段,每个 parent 调用其所有 children 的布局来定位它们。这通常使用存储在测量 pass() 中的 child 测量来完成。 Derived 类 不应覆盖此方法。使用 children 派生的 类 应该覆盖 onLayout。在那个方法中,他们应该在每个 children 上调用布局。 参数 升 左侧位置,相对于 parent 吨 最高位置,相对于 parent r 正确的位置,相对于 parent b 底部位置,相对于 parent

同时 view.getX()

此视图的视觉 x 位置(以像素为单位)。这相当于translationX属性加上当前left属性。 Returns 此视图的视觉 x 位置,以像素为单位。

希望这是有道理的...

根据我的理解,child.layout(Int,int ,int ,int) 用于确定 child is.after 绘图 layout.u 设置 X 位置的位置有多大..所以它保持那个尺寸的 x 位置。