查看的setX(),setY()和layout()

时间:2015-01-02 11:01:14

标签: android layout view

实际上这些方法之间的合同是什么?我想,layout()调用setX(),但不知何故,layout()在调用setX()后停止工作。

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

但视图保持在{0,256}。为什么这样?

2 个答案:

答案 0 :(得分:1)

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

表示: 为视图及其所有后代指定大小和位置 这是布局机制的第二阶段。 (第一个是测量)。在此阶段,每个父级都会调用其所有子级上的布局来定位它们。这通常使用存储在度量pass()中的子度量来完成。 派生类不应覆盖此方法。带子项的派生类应覆盖onLayout。在那种方法中,他们应该为每个孩子调用布局。 参数 升 左侧位置,相对于父级 Ť 最高位置,相对于父母 [R 正确的位置,相对于父母 b 相对于父母的底部位置

view.getX()

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

希望这有意义......

答案 1 :(得分:1)

在我的理解child.layout(Int,int ,int ,int)中用于识别孩子的大小。在绘制layout.u之后设置X位置以保持在那里......因此它保持x大小的位置。< / p>