setX(),setTranslationX(),setY()和setTranslationY()

Jim*_*ang 20 java android android-layout

setX(),setY()和setTranslationX(),setTranslationY()之间有什么区别?他们是在现有坐标上设置偏移还是设置绝对位置?

如果他们设置绝对坐标不会与父布局的约束冲突?

说我们有类似的东西 | View 1 | View 2 | View 3|

在LinearLayout中,如果我们执行view2.setX(0);view2.setTranslationX(0);将查看2重叠视图1或将视图1推到侧面怎么办?

同样,如果我们有一个RelativeLayout的子项,其alignParentBottom设置为true,但我们在代码中手动将该子项的y坐标设置为0.哪种布局规则获胜?

基本上,我对手动坐标如何影响容器的布局规则以及转换和X/Y之间的区别感到困惑.如果这看起来微不足道,我会事先道歉但是我是来自iOS的Android新手.

Bud*_*ddy 27

从文档来看,setTranslationX是:

设置此视图相对于其左侧位置的水平位置.除了对象的布局放置它之外,这有效地定位了布局后的对象.

并且setX是:

设置此视图的可视x位置(以像素为单位).这相当于将translationX属性设置为传入的x值和当前left属性之间的差异.

因此,您可以将其setTranlsationX视为相对偏移:移动通常位置的3个像素.并且setX是一个固定的位置:移动你所拥有的任何东西,以便你最终在坐标X处绘制.


小智 11

setX/Y从0,0屏幕设置绝对位置. setTranlsationX/Y在布局中从默认位置设置位置.

在此输入图像描述


Sur*_*gch 5

设置XY设置视图相对于父视图左上角的位置(而不是屏幕上的绝对位置)。设置平移会将视图相对于父视图放置的位置移动。(家长在处展示了该视图(left, top)。)

在此处输入图片说明