android - View 的 setX()、setY() 和 layout()

标签 android layout view

这些方法之间实际上有什么契约?我想,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 属性加上当前的 le​​ft 属性。 返回 此 View 的视觉 x 位置,以像素为单位。

希望这是有道理的...

关于android - View 的 setX()、setY() 和 layout(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27741083/

相关文章:

python Holoviews 带有列的布局选项卡

html - 从模板中管理标题导航菜单的最佳方式?

android - 键盘在 flutter 应用程序中向上插入 FloatingActionButton

android - 使用自定义适配器从 ListView 中删除项目

android - 缺少artifactcom.google.android.gms :google-play-services:jar in pom. xml

.net - WPF 和 Silverlight 中的两轮布局系统

android - 在android中填充编辑文本的语音输入?

html - 将多个 div float 到一行中

ios - 在另一个 View 中有一个 subview

Android:如果图像不存在,返回 createFromPath 方法是什么?